轉型方法與比對技巧
Number
var a = parseInt('0100', 10); // 一律加上第 2 個參數明確指定進制
var b = +("7"); // 使用 + 強迫引發自動轉型
var c = 3.14159;
var d = ~~c // 去掉小數
String
var a = 100;
var b = false;
var c = ['a', 'b', 'c'];
a.toString();
b.toString();
c.toString();
試著直接使用字面值 (literal) 操作轉型會發現不一樣的結果。
Boolean
var a = !!0;
var b = !!"";
var c = !!1;
比對 - 隱含比對與明確比對
物件是無法比較等式的。
也許你看過以下比對的程式碼:
var a = 100;
var b = 100;
if (a == b) {
console.log('a is equal to b');
}
if (a != b) {
console.log('a is not equal to b');
}
又或者是:
var a = 100;
var b = 100;
if (a === b) {
console.log('a is equal to b');
}
if (a !== b) {
console.log('a is not equal to b');
}
使用 ==
或 !=
代表隱含比對會引發自動轉型。
而使用 ===
或 !==
代表明確比對。
不能說哪個一定對,要根據需求來撰寫符合情境的程式碼才是上策。
一般情況較不會去使用到的比對實作
null === null // true
undefined === undefined // true
NaN === NaN // false
NaN
很特殊連跟自己比較都是 false
。