JS-包装对象

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没有包装对象,访问它们的属性会造成一个类型错误。

 2、可通过String()、Number()、Booolean()构造函数来显示地创建包装对象:

1 var s = "test",n = 1,b = true; // 一个字符串、数字和布尔值
2 var S = new String(s); // 一个字符串对象
3 var N = new Number(n); // 一个数值对象
4 var B = new Boolean(b); // 一个布尔对象
5 
6 // 但是这两种方法并不是总是相等的,例如
7 s==S; // true
8 s===S; // false
原文地址:https://www.cnblogs.com/fydxx/p/6026933.html