溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

解析JavaScript的隱式類型轉換

發(fā)布時間:2020-08-10 02:49:22 來源:網(wǎng)絡 閱讀:387 作者:Hjiangxue 欄目:web開發(fā)

avaScript的數(shù)據(jù)類型分為六種,分別為null,undefined,boolean,string,number,object。object是引用類型,其它的五種是基本類型或者是原始類型。我們可以用typeof方法打印來某個是屬于哪個類型的。不同類型的變量比較要先轉類型,叫做類型轉換,類型轉換也叫隱式轉換。隱式轉換通常發(fā)生在運算符加減乘除,等于,還有小于,大于等。。

typeof '11'  //string 
typeof(11)  //number
'11' < 4     //false

基本類型的轉換

下面先講加減乘除:

1.字符串加數(shù)字,數(shù)字就會轉成字符串。

2.數(shù)字減字符串,字符串轉成數(shù)字。如果字符串不是純數(shù)字就會轉成NaN。字符串減數(shù)字也一樣。兩個字符串相減也先轉成數(shù)字。

3.乘,除,大于,小于跟減的轉換也是一樣。

//隱式轉換 + - * == / 
// + 
10 + '20'    //2010
// -
10 - '20'    //-10
10 - 'one'   //NaN
10 - '100a'  //NaN
// *
10*'20'      //200
'10'*'20'    //200
// /
20/'10'      //2
'20'/'10'    //2
'20'/'one'  //NaN

再來看看一組 == 的。

1.undefined等于null

2.字符串和數(shù)字比較時,字符串轉數(shù)字

3.數(shù)字為布爾比較時,布爾轉數(shù)字

4.字符串和布爾比較時,兩者轉數(shù)字

// ==
undefined == null;    //true
'0' == 0;            //true,字符串轉數(shù)字
0 == false;           //true,布爾轉數(shù)字
'0' == false;       //true,兩者轉數(shù)字
null == false;       //false
undefined == false;  //false

引用類型的轉換

基本類型間的比較相對簡單。引用類型和基本類型的比較就相對復雜一些,先要把引用類型轉成基本類型,再按上述的方法比較。引用類型轉布爾全是true。比如空數(shù)組,只要是對象就是引用類型,所以[]為true。引用類型轉數(shù)字或者字符串就要用valueOf()或者toString();對象本身就繼承了valuOf()和toString(),還可以自定義valueOf()和toString()。根據(jù)不同的對象用繼承的valueOf()轉成字符串,數(shù)字或本身,而對象用toString就一定轉為字符串。一般對象默認調(diào)用valueOf()。

1.對象轉數(shù)字時,調(diào)用valueOf();

2.對象轉字符串時,調(diào)用toString();

本次給大家推薦一個免費的學習圈,里面概括移動應用網(wǎng)站開發(fā),css,html,webpack,vue node angular以及面試資源等。**獲取資料

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI