JavaScript基礎----隱式轉換

不同類型的變量比較要先轉類型,叫做類型轉換,類型轉換也叫隱式轉換。隱式轉換通常發生在運算符加減乘除、等於、還有小於、大於等。js隱式轉換,可以說是一個很大的坑了,下面就來侃一侃js隱式轉換的規律。

1. ==隱式轉換

如圖,js在隱式轉換(==)的時候,會按圖示進行轉換:

 關於==隱式轉換的規則,可以概括如下幾點:

        1. 字符串和數字比較時,字符串轉數字;

        2. 數字爲布爾比較時,布爾轉數字;

        3. 字符串和布爾比較時,兩者轉數字;

        4. 對象和布爾比較時,兩者轉數字;

        5. 對象和數值比較時,對象轉數字;

舉個例子:

[1,2,3] == '1,2,3' //true  [1,2,3]轉化爲'1,2,3',故結果爲true;

'0' == true;  //false  '0'轉換成數字0,true轉換成數字1,故結果爲false

特殊情況: 

        1. undefined==null;

        2. 只有undefined、null、NaN、0、‘’會被轉換爲false,其餘都爲true;

        3. NaN和任何值都不相等, 包括NaN本身;

        4. null和undefined在進行比較的時候,不會進行類型轉換。

        即:0 == null                         //false; 

               0 == undefined               //false;

               false == null                    //false;

               false == undefined         //false;

               true == null                     //false;

               true == undefined           //false;

               '' == null                          //false;

               '' == undefined                //false;

2. 算數運算

轉換規則:

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

                   2. 數字減字符串(或字符串減數字,或字符串減字符串),字符串轉成數字。如果字符串不是純數字就會轉成NaN

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

舉個例子:

console.log(10 +'20')     //1020

console.log(10 - '20')    //-10 number
console.log(10 - 'one')   //NaN
console.log(10 - '101a')  //NaN
console.log(10 * '20')    //200 number
console.log('10' * '20')  //200 number
console.log(20 / '10')    //2 number
console.log('20' / '10')  //2 number
console.log('20' / 'one') //NaN

 參考鏈接:https://www.cnblogs.com/chenmeng0818/p/5954215.html

                   https://blog.csdn.net/sinat_29454619/article/details/74075216

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章