1.7 鉴别数组
虽然instanceof可以鉴别数组,但是有一个例外会影响网页开发者:JavaScript的值可以在同一个网页的不同框架之间传来传去。当你试图鉴别一个引用值的类型时,这就有可能成为一个问题,因为每一个页面拥有它自己的全局上下文——Object、Array以及其他内建类型的版本。结果,当你把一个数组从一个框架传到另一个框架时,instanceof就无法识别它,因为那个数组是来自不同框架的Array的实例。
为了解决这个问题,ECMAScript 5引入了Array.isArray()来明确鉴别一个值是否为Array的实例,无论该值来自哪里,该方法对来自任何上下文的数组都返回true。如果你的环境兼容ECMAScript 5,Array.isArray()是鉴别数组的最佳方法。
var items = [];
console.log(Array.isArray(items)); // true
大多数环境都在浏览器和Node.js中支持Array.isArray()方法。IE8或更早的版本不支持该方法。
时间: 2024-09-16 06:02:09