JavaScript 類型轉換(2)
阿新 • • 發佈:2019-04-12
隱式 -- 變量 依然 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)