《JavaScript面向对象精要》——1.7 鉴别数组-阿里云开发者社区

开发者社区> 开发与运维> 正文

《JavaScript面向对象精要》——1.7 鉴别数组

简介: 虽然instanceof可以鉴别数组,但是有一个例外会影响网页开发者:JavaScript的值可以在同一个网页的不同框架之间传来传去。当你试图鉴别一个引用值的类型时,这就有可能成为一个问题,因为每一个页面拥有它自己的全局上下文——Object、Array以及其他内建类型的版本。

本节书摘来自异步社区《JavaScript面向对象精要》一书中的第1章,第1.7节,作者:【美】Nicholas C. Zakas著,更多章节内容可以访问云栖社区“异步社区”公众号查看

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或更早的版本不支持该方法。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章