在ES中,数据分成基本数据类型和引用数据类型,而基本包装类型尽管不属于这两种的任意一者 但却与这两者息息相关。
基本包装类型就是把简单数据类型包装成为复杂数据类型,使其像引用数据类型一样有其内置的方法以便对数据进行更多的操作。
为了方便操作,ES提供了三个特殊引用类型(基本包装类型):Boolean、Number、String
与引用数据类型一样,基本包装类型也拥有内置方法可以对数据进行操作。
首先先看一个例子:
var str = 'taylor';
var res = str.length;
console.log(res); // 6
按理来说,对象才有属性和方法,也就是说复杂数据类型才有属性和方法。
那么这里的 str 是一个简单数据类型,怎么会有length属性呢?
这就是我们要了解的·基本包装类型:
每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型对象,从而可以调用一些方法操作这些数据。
在我们执行第二行操作时,在js内部会自动为我们进行以下的步骤:
- 使用一个临时变量保存基本包装类型实例,把简单数据类型包装为复杂数据类型
- 对实例调用我们想要的方法
- 销毁这个临时变量
// 用一个临时变量保存基本数据类型实例,把简单数据类型包装为复杂数据类型
var temp = new String('taylor');
// 对实例调用方法
res = temp.length();
// 销毁