1、字符串、数字、布尔值不是对象,为什么会有属性呢?例如:
1 var s = "test"; 2 var len = s.length;//4,使用字符串的属性
因为只要引用了字符串s的属性,JavaScript就会将字符串值通过调用new String(s)的方式临时转换成对象,属性引用结束,临时对象销毁。
例如以下代码,对字符串s设置属性会失败:
1 var s = "test"; 2 s.len = 4; 3 var t = s.len;// undefined
同样,数字和布尔值也具有各自的构造函数创建临时对象:Number()、Boolean()。在存取字符串、数字或布尔值的属性时创建的临时对象称作包装对象。
注:null和undefined没有包装对象,访问它们的属性会造成一个类型错误。
时间: 2024-10-06 02:53:05