淺析為什么a="abc" 不等于 a=new String("abc")
顯而易見
a="abc"
typeof a //string
b=new String("abc")
typeof b // object
a==b //true
a===b //false
但是為什么呢?看了很多書,問了好幾個大神,其實自己還是稀里糊涂的。這里記錄一下,備查。
在js中,區(qū)分原始資料類型和包裝類型。數(shù)字、字符串、布爾、null、undefined 屬于原始資料類型,而Number、String、Boolean屬于包裝類型,通過new Number 創(chuàng)建的是包裝類型的派生對象。所以兩者是不等的。
直接賦值為基本類型之后的使用過程如下:
1、創(chuàng)建String類型的一個實例
2、在實例上調用指定的方法
3、銷毀實例
舉例:
var a="123" a.toFixed===Number.prototype.toFixed;
這里還有一種說法:裝箱,拆箱
裝箱,就是用這個值類構造一個相應的包裝對象
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);
裝箱的最大作用是將值作為對象來處理。
拆箱,是包裝對象轉換成值類型
var a=10; var o_a=new Number(a); var b=o_a.valueOf();//這就是拆箱的過程。
總結
以上所述是小編給大家介紹的為什么a="abc" 不等于 a=new String("abc"),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
JS+canvas實現(xiàn)的五子棋游戲【人機大戰(zhàn)版】
這篇文章主要介紹了JS+canvas實現(xiàn)的五子棋游戲,是采用比較強的AI實現(xiàn)的人機大戰(zhàn)版游戲,涉及javascript結合HTML5實現(xiàn)圖形繪制與人工智能相關操作技巧,需要的朋友可以參考下2017-07-07
JavaScript實現(xiàn)數(shù)據可視化圖表的示例代碼
這篇文章主要介紹了如何使用JavaScript創(chuàng)建實時數(shù)據可視化圖表,我們將使用流行的圖表庫,如Chart.js,來展示如何將實時數(shù)據動態(tài)呈現(xiàn)在圖表中,感興趣的可以了解下2024-01-01
Javascript 實現(xiàn)計算器時間功能詳解及實例(二)
這篇文章主要介紹了Javascript 實現(xiàn)計算器時間功能詳解及實例的相關資料,需要的朋友可以參考下2017-01-01
工作中比較實用的JavaScript驗證和數(shù)據處理的干貨(經典)
工作中比較實用的JavaScript驗證和數(shù)據處理知識經常會用到,下面小編通過查閱相關資料及日常記錄的知識分享到腳本之家平臺,供大家參考2016-08-08

