string的包装类型
字符串有长度属性,但是又说只有对象才有属性和方法。
实际上:
在使用字符串的属性或方法时,JS会给我们创建一个值相同的基本包装类型对象,再调用这个对象的属性和方法,这个对象使用完毕后会立刻删除掉。
var str1 = "abc";
var str2 = new String("abc");//string的包装类型
//简单数据类型无法绑定属性和方法。
str1.aaa = 111;
str2.aaa = 222;
console.log(str1.aaa);//undefiend
console.log(str2.aaa);//222
console.log(str1.length);
console.log(str1.indexOf("b"));//隐式转换,调用属性和方法的时候,
// 简单类型转换成了包装类型,使用完毕方法或者属性后又返回原来的简单数据类型。
str1和str2的本质:

基本包装类型
基本包装类型:Boolean、Number、String
什么是包装对象
当使用原始类型的值(string、number、boolean),在调用对应属性和方法的时候,内部会自动转成对应的对象。隐式创建的这个对象,就成为包装对象。
包装对象的特点
隐式创建对象后,可以调用对应的属性和方法,使用后,立马销毁,所以不能给原始类型的值添加属性和方法
引用类型和基本包装类型的主要区别就是对象的生存期
- 使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保