📜  typeof 数组 - Javascript (1)

📅  最后修改于: 2023-12-03 15:20:42.761000             🧑  作者: Mango

typeof 数组 - Javascript

在Javascript中,使用typeof运算符可以返回值的数据类型。

但是,当我们使用typeof来检测数组时,得到的结果却是 'object'。

let arr = [];
console.log(typeof arr); // 'object'

这是因为在Javascript中,数组被视为一种特殊类型的对象,与普通的对象一样都是通过引用来操作的。因此,使用typeof运算符返回的就是'object'。

虽然使用typeof得到的结果是'object',但是我们仍然可以通过其他方式来检测一个值是否为数组。

检测数组的方法
  1. instanceof运算符

使用instanceof运算符可以检测一个值是否为数组。

let arr = [];
console.log(arr instanceof Array); // true
  1. Array.isArray()方法

使用Array.isArray()方法可以检测一个值是否为数组。

let arr = [];
console.log(Array.isArray(arr)); // true

需要注意的是,Array.isArray()方法在ES5中才被引入,如果需要兼容旧版本浏览器,需要自行 polyfill。

  1. Object.prototype.toString.call()方法

使用Object.prototype.toString.call()方法可以返回一个值的类型信息。

let arr = [];
console.log(Object.prototype.toString.call(arr)); // '[object Array]'

需要注意的是,返回的类型信息是一个字符串,格式为'[object 类型]',其中类型为值的实际类型,比如'[object Number]'表示值的类型为数字。

总结

使用typeof运算符检测数组时得到的结果是'object',但是我们仍然可以通过 instanceof运算符、Array.isArray()方法和Object.prototype.toString.call()方法来检测一个值是否为数组。在实际开发中,建议使用Array.isArray()方法来检测数组,否则请自行 polyfill。