包装类:
JavaScript 的数据类型分两种:
基本数据类型:数字类型、字符串、布尔、null、undefined、Symbol。
引用数据类型:数组、对象、Set、Map。
基本数据类型存储的是原始值本身,而引用数据类型存储的值的引用。
概念:在 JavaScript 中,提供了三种特殊的引用类型构造函数:Boolean、Number、String。每当我们调用与之相关的基本类型数据时,JavaScript的后台都会调用它们来创建一个对应的对象,从而能够调用一些方法来操作这些数据,这就是包装类。
以下代码为列:

var a = 'abc';
console.log( a.length); // 输出结构为3
// 在调用 a.length 时,JavaScript引擎实质上进行了类似于以下面这样的操作:
// 1. var a1 = new String(abc); => 临时创建了一个相对于 变量a 值 的对象。
// 2. ( a.length )的值 = a1.length; => 调用这个临时对象的方法。
// 3. a1 = null; => 销毁这个临时对象。

注意!虽然基本类型能使用 包装类 的一些方法,但是创建的临时对象,在方法调用完后就会被立刻销毁。所以前往不要将基本类型当成对象,。

var str = 'Hello';
str.myObj = 'World';
console.log( str.myObj); // undefined
// str 是基本类型,不是对象,故而不能添加自定义属性。
var str1 = String('Hello');
str1.myObj = 'World';
console.log(str.myObj); // undefined
console.log(str === str1); // true
// 由此可知,通过函数调用方式创建的是基本类型数据
var str2 = new String(Hello);
str2.myObj = 'World';
console.log( str2.myObj ); // World
// str2 是new 出来的,是对象,所以是可以添加自定义属性的。
