顯而易見(jiàn)
a="abc"typeof a //stringb=new String("abc")typeof b // objecta==b //truea===b //false但是為什么呢?看了很多書(shū),問(wèn)了好幾個(gè)大神,其實(shí)自己還是稀里糊涂的。這里記錄一下,備查。
在js中,區(qū)分原始資料類(lèi)型和包裝類(lèi)型。數(shù)字、字符串、布爾、null、undefined 屬于原始資料類(lèi)型,而Number、String、Boolean屬于包裝類(lèi)型,通過(guò)new Number 創(chuàng)建的是包裝類(lèi)型的派生對(duì)象。所以?xún)烧呤遣坏鹊摹?/p>
直接賦值為基本類(lèi)型之后的使用過(guò)程如下:
1、創(chuàng)建String類(lèi)型的一個(gè)實(shí)例
2、在實(shí)例上調(diào)用指定的方法
3、銷(xiāo)毀實(shí)例
舉例:
var a="123"a.toFixed===Number.prototype.toFixed;
這里還有一種說(shuō)法:裝箱,拆箱
裝箱,就是用這個(gè)值類(lèi)構(gòu)造一個(gè)相應(yīng)的包裝對(duì)象
var a=10 ,b="javascript" , c=true; var o_a=new Number(a); var o_b=new String(b); var o_c=new Boolean(c);
裝箱的最大作用是將值作為對(duì)象來(lái)處理。
拆箱,是包裝對(duì)象轉(zhuǎn)換成值類(lèi)型
var a=10; var o_a=new Number(a); var b=o_a.valueOf();//這就是拆箱的過(guò)程。
總結(jié)
以上所述是小編給大家介紹的為什么a="abc" 不等于 a=new String("abc"),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)錯(cuò)新站長(zhǎng)站網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選