JavaScript 运算符 typeof 返回 “object”:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
typeof fruits;             // 返回 object

typeof 运算符返回 “object”,因为 JavaScript 数组属于对象。
那么我们如何识别数组呢?

解决方案 1:

为了解决这个问题,ECMAScript 5 定义了新方法 Array.isArray():

Array.isArray(fruits);     // 返回 true

此方案的问题在于 ECMAScript 5 不支持老的浏览器。

解决方案 2:

创建自己的 isArray() 函数以解决此问题:

function isArray(x) {
    return x.constructor.toString().indexOf("Array") > -1;
}

假如参数为数组,则上面的函数始终返回 true。或者:假如对象原型包含单词 “Array” 则返回 true。

解决方案 3:

假如对象由给定的构造器创建,则 instanceof 运算符返回 true:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits instanceof Array     // 返回 true
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐