JavaScript提供了3个特殊的引用类型:Boolean、Number和String。实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而可以调用这些类型的方法来操作数据。
引用类型和基本包装类型的主要区别
对象的生存期。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。这意味着不能在运行时为基本类型值添加属性和方法。(基本包装类型的原型属性是不可枚举的,如Object, Array, Number等,,所以不能被for…in访问到。Object对象的propertyIsEnumerable()方法可以判断此对象是否包含某个属性,并且这个属性是否可枚举。)
基本包装类型:Boolean、Number和String ,Array,Math,Global(当基本类型以对象的方式去使用时,JavaScript会转换成对应的包装类型,相当于new一个对象)
for ...in 获取键 for of获取值
对基本包装类型的实例调用typeof会返回object,所有基本包装类型都会被转换为布尔值true。
eg:
var obj1 = new Object("hello");
var obj2 = new Object(12);
var obj3 = new Object(true);
alert(obj1 instanceof String); // true
alert(obj2 instanceof Number); // true
alert(obj3 instanceof Boolean); // true
网友评论