欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析為什么a="abc" 不等于 a=new String("abc")

 更新時間:2017年10月25日 10:17:27   作者:姚冰coding  
這篇文章主要介紹了為什么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"),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

最新評論