javascript的装箱和拆箱

1.装箱

在JavaScript里面有个引用类型叫做基本包装类型,它包括String、Number和Boolean。对应的基本数据类型是String、Number和Boolean。

所谓的装箱,是指将基本数据类型转换为对应的引用类型的操作。而装箱又分为隐式装箱和显式装箱。

1.隐式装箱

let str = 'text';
str.indexOf('e');

上面代码的实际执行逻辑为:

  • 1、创建String类型的一个实例;
  • 2、在实例中调用制定的方法;
  • 3、销毁这个实例。
    转化为代码为:
let str = new String('test');
str.indexOf('e');
str = null

当我们在调用基本数据类型的方法时,js会自动为我们创建于该基本数据类型值相同的包装类型,在包装类型的原型链上有很多可用的方法,js会调用原型链上的方法返回执行结果。

2.显示装箱

显示装箱顾名思义就是手动创建包装类型

let str = new String('test')

如此创建了该实例对象后,我们就可以显式使用其原型链上的方法,而且由于是我们手动创建的对象,所以他会一直此存在于内存当中,不会被销毁。

2.拆箱

拆箱就是将引用类型转换为基本数据类型,拆箱的方法有两个valueOf()和toString(),一下为在chrome浏览器中的测试结果。

chome浏览器测试

你可能感兴趣的:(javascript的装箱和拆箱)