为什么 typeof [] 返回 'object'?

51 阅读1分钟

为什么 typeof [] 返回 'object'?

1.历史原因:在 JavaScript 的早期版本中,typeof 运算符用于检测变量的类型,但是它并不能准确地检测出数组的类型。

  因此,当使用 typeof 运算符检测数组时,它会返回 'object',因为数组在 JavaScript 中被视为对象。

2.数组的特殊性:在 JavaScript 中,数组是一种特殊的对象,它具有一些特殊的属性和方法,例如 length 属性和 push() 方法。

  因此,当使用 typeof 运算符检测数组时,它会返回 'object',而不是 'array'。

3.兼容性:由于历史原因,typeof 运算符在检测数组类型时返回 'object',这有助于保持与其他语言的兼容性。

  例如,在 Java 中,数组也是一种对象,因此使用 typeof 运算符检测数组时也会返回 'object'。

4.那么怎么判断一个变量是不是数组呢?

可以使用 Array.isArray() 方法来判断一个变量是否为数组。例如:


var arr = [1, 2, 3];

console.log(Array.isArray(arr)); // true