淺析為什么a="abc" 不等于 a=new String("abc")
顯而易見
a="abc" typeof a //string b=new String("abc") typeof b // object a==b //true a===b //false
但是為什么呢?看了很多書,問了好幾個(gè)大神,其實(shí)自己還是稀里糊涂的。這里記錄一下,備查。
在js中,區(qū)分原始資料類型和包裝類型。數(shù)字、字符串、布爾、null、undefined 屬于原始資料類型,而Number、String、Boolean屬于包裝類型,通過new Number 創(chuàng)建的是包裝類型的派生對(duì)象。所以兩者是不等的。
直接賦值為基本類型之后的使用過程如下:
1、創(chuàng)建String類型的一個(gè)實(shí)例
2、在實(shí)例上調(diào)用指定的方法
3、銷毀實(shí)例
舉例:
var a="123" a.toFixed===Number.prototype.toFixed;
這里還有一種說法:裝箱,拆箱
裝箱,就是用這個(gè)值類構(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ì)象來處理。
拆箱,是包裝對(duì)象轉(zhuǎn)換成值類型
var a=10; var o_a=new Number(a); var b=o_a.valueOf();//這就是拆箱的過程。
總結(jié)
以上所述是小編給大家介紹的為什么a="abc" 不等于 a=new String("abc"),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript實(shí)現(xiàn)簡單MD5加密的腳本分享
MD5信息摘要算法是一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個(gè)128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致。本文將用JavaScript實(shí)現(xiàn)簡單MD5加密,感興趣的可以了解一下2022-10-10uniapp改變底部安全區(qū)頂部手機(jī)信號(hào)時(shí)間電池欄顏色樣式
這篇文章主要為大家介紹了uniapp改變底部安全區(qū)頂部手機(jī)信號(hào)時(shí)間電池欄顏色樣式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03echarts數(shù)據(jù)可視化實(shí)現(xiàn)多個(gè)柱狀堆疊圖頂部顯示總數(shù)示例
這篇文章主要為大家介紹了echarts實(shí)現(xiàn)多個(gè)柱狀堆疊圖頂部顯示總數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07JavaScript中Object和Function的關(guān)系小結(jié)
JavaScript 中 Object 和 Function 的關(guān)系是微妙的,他們互為對(duì)方的一個(gè)實(shí)例。2009-09-09