1.裝箱
在JavaScript里面有個(gè)引用類型叫做基本包裝類型虐先,它包括String、Number和Boolean。對應(yīng)的基本數(shù)據(jù)類型是String巧鸭、Number和Boolean。
所謂的裝箱麻捻,是指將基本數(shù)據(jù)類型轉(zhuǎn)換為對應(yīng)的引用類型的操作纲仍。而裝箱又分為隱式裝箱和顯式裝箱。
1.隱式裝箱
let str = 'text';
str.indexOf('e');
上面代碼的實(shí)際執(zhí)行邏輯為:
- 1贸毕、創(chuàng)建String類型的一個(gè)實(shí)例郑叠;
- 2、在實(shí)例中調(diào)用制定的方法明棍;
- 3乡革、銷毀這個(gè)實(shí)例。
轉(zhuǎn)化為代碼為:
let str = new String('test');
str.indexOf('e');
str = null
當(dāng)我們在調(diào)用基本數(shù)據(jù)類型的方法時(shí)摊腋,js會(huì)自動(dòng)為我們創(chuàng)建于該基本數(shù)據(jù)類型值相同的包裝類型沸版,在包裝類型的原型鏈上有很多可用的方法,js會(huì)調(diào)用原型鏈上的方法返回執(zhí)行結(jié)果兴蒸。
2.顯示裝箱
顯示裝箱顧名思義就是手動(dòng)創(chuàng)建包裝類型
let str = new String('test')
如此創(chuàng)建了該實(shí)例對象后视粮,我們就可以顯式使用其原型鏈上的方法,而且由于是我們手動(dòng)創(chuàng)建的對象橙凳,所以他會(huì)一直此存在于內(nèi)存當(dāng)中馒铃,不會(huì)被銷毀。
2.拆箱
拆箱就是將引用類型轉(zhuǎn)換為基本數(shù)據(jù)類型痕惋,拆箱的方法有兩個(gè)valueOf()和toString()区宇,一下為在chrome瀏覽器中的測試結(jié)果。