轉型方法與比對技巧

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

results matching ""

    No results matching ""