第5章 引用类型
5.1 涉及的方法和属性概览
5.2 内容概述
5.3 Array类型
5.3.1检测数组
如果只有一个全局作用域,使用instanceof操作符就能满足需求。但是如果有多个全局执行环境,那么就存在多个Array构造函数,当且仅当要检测的数组与其构造函数在同一个全局执行环境中时,才会返回true,否则返回false。
ES5新增了Array.isArray(arr)方法,这个方法能确定某个值是否是数组而不管它在哪个全局执行环境中创建的。
要在不支持该方法的浏览器中准确测定是否为数组,可以使用以下方法(在Object.prototype.toString()为被修改的情况下):
function isArray (arr) {
return Object.prototype.toString.call ( arr ) == ‘[object Array]’;
}
5.4 基本包装类型
ES提供了3个特殊的引用类型,Boolean,Number,String。每当读取一个基本类型的值,后台就会自动创建一个基本包装类型的对象,以便于我们调用方法操作数据。但自动创建的基本包装类型的对象,只存在于一行代码执行的瞬间,然后立即被销毁。这就不能为他们添加方法和属性。这也是它们与引用类型的主要区别。
也可以用构造函数的方式来创建基本包装类型(不推荐),可以用instanceof检测。