1. 程式人生 > >JavaScript 類型轉換(2)

JavaScript 類型轉換(2)

隱式 -- 變量 依然 undefine 轉換成 === 也會 一個

隱式類型轉換

1.  

var  a = "123";
a++; 

  這時候會將調用Number("123")將"123"轉換成數字類型,然後再自增。

var a = "abc";
a++;

  這時候,依然會調用Number("abc")將"abc"轉換成數字類型,但是"abc"轉不成數字,所以,轉換之後的結果是NaN,Nan++還是NaN。

  -- 也一樣,前自增,前自減也是一樣的。先轉換成數字類型。同時,正/負符號也會把變量變成數字類型。比如

var a = "abc";
+a;
-a;
a++;
a--;
++a;
--a;

2.  

  加號兩邊,只要有一個是字符串,都會轉換成字符串再相加。

3.  - 減號,* 乘號,/ 除號,% 求模 都會將符號兩邊的數據轉換成number類型,然後再進行運算。

4.   &&, ||, ! 都會轉換成Boolean類型,再進行判斷。

5.  >, <, <=, >=, 兩邊如果有一個是數字的話,就將這兩邊的數據都轉換成數字類型,再進行比較。字符串和字符串相比較的話,就會直接比較ascll碼。

6.  ==, != , 會將兩邊的數據轉換成number類型,再進行比較。

7.  特殊:undefined == null, NaN != NaN; 非數不等於任何數,包括自己。

8.   === 絕對等於,!== 絕對不等於。不發生類型轉換,比如

1 === "1";  /* false */
1 === 1;     /*true*/
NaN === NaN  /*這個比較特殊,它就是不相等*/

  

JavaScript 類型轉換(2)