隱式轉換
1.undefined與null相等,但不恆等(===)
2.一個是number一個是string時,會嘗試將string轉換為number
3.隱式轉換將boolean轉換為number,0或1
4.隱式轉換將Object轉換成number或string,取決於另外一個對比量的類型
5.對於0、空字符串的判斷,建議使用 “===” 。
6.“==”會對不同類型值進行類型轉換再判斷,“===”則不會。它會先判斷兩邊的值類型,類型不匹配時直接為false。
undefined == null; // true 1 == true; // true 2 == true; // false 0 == false; // true 0 == ''; // true NaN == NaN; // false NaN不等於任何值 [] == false; // true [] == ![]; // true '6' - '3' // 3 1234 + 'abcd' // "1234abcd"
顯示轉換
顯示轉換一般指使用Number、String和Boolean三個構造函數,手動將各種類型的值,轉換成數字、字符串或者布爾值。
Number:
Number('1234') // 1234 Number('1234abcd') // NaN Number('') // 0 Number(true) // 1 Number(null) // 0 Number(undefined) // NaN
String:
String(1234) // "1234" String('abcd') // "abcd" String(true) // "true" String(undefined) // "undefined" String(null) // "null"
Boolean:
Boolean(0) // false Boolean(undefined) // false Boolean(null) // false Boolean(NaN) // false Boolean('') // false