一、装箱
装箱:把基本数据类型转化为对应的引用数据类型的操作
const s1 = 'helloWorld'
const index = s1.indexOf('e')
console.log(index) // 1
s1是一个基本数据类型,他又是怎么调用indexOf方法的呢?实际上,JS在内部做了装箱的操作:
-
创建String类型的一个实例;
-
在实例上调用指定的方法;
-
销毁这个实例;
var temp = new String('helloWorld')
const index = temp.indexOf('e')
temp = null
console.log(index) // 1
二、拆箱
拆箱:将引用数据类型转化为对应的基本数据类型的操作(通过valueOf和toString方法)
var objNum = new Number(123);
var objStr =new String("123");
console.log( typeof objNum ); //object
console.log( typeof objStr ); //object
console.log( typeof objNum.valueOf() ); //number
console.log( typeof objStr.valueOf() ); //string
console.log( typeof objNum.toString() ); // string
console.log( typeof objStr.toString() ); // string