以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - JavaScript 代码题
20. 检测 data type

可以使用typeof来获取基础数据类型,对于其他类型的判断可以使用instanceof进行判断。代码如下:

function detectType(value) {
  const type = typeof(value);
  if (type !== 'object') {
    return type;
  }
  if (value === null) {
    return 'null';
  }
  if (Array.isArray(value)) {
    return 'array';
  }
  if (value instanceof ArrayBuffer) {
    return 'arraybuffer';
  }
  if (value instanceof Map) {
    return 'map';
  }
  if (value instanceof Set) {
    return 'set';
  }
  if (value instanceof Date) {
    return 'date';
  }
  if (value instanceof Function) {
    return 'function';
  }
  return 'object';
}

测试代码:

console.log(detectType(1)); // 'number'
console.log(detectType(new Map())); // 'map'
console.log(detectType([])); // 'array'
console.log(detectType(null)); // 'null'
console.log(detectType(new ArrayBuffer())); // 'arraybuffer'
console.log(detectType(new Set())); // 'set'
console.log(detectType(new Date())); // 'date'
console.log(detectType(function(){})); // 'function'
console.log(detectType({})); // 'object'