JavaScript 之检测数组
要判断一个对象是不是数组,ECMAScript 提供了 2 种检测方式,他们分别是:
instanceof
操作符Array.isArray()
方法
在只有一个全局作用域的情况下,使用 instanceof
操作符即可:
1 | if (value instanceof Array) { |
使用 instanceof
的问题是假设只有一个全局上下文。如果网页中有多个框架,则可能存在两个以上全局执行上下文,因此可能会有多个不同的 Array
构造函数。当从一个框架中将数组传递给另外一个框架时,则这个数组的构造函数将有别于第二个框架中的数组。
为了解决这个问题,ECMAScript 提供了 Array.isArray()
方法。这个方法的作用就是确定一个值是否为数组,而不用管它是在哪个全局上下文中创建的。下面是一个例子:
1 | if (Array.isArray(value)) { |