簡便的方式判斷 null 與 undefined

nullundefined 是 ECMAScript 很特別的存在,實務上常常必須判斷 nullundefined,但如何才是最好的判斷方式呢 ?

Version


ECMAScript 5
ECMAScript 2015

標準做法


1
2
3
4
5
6
7
8
9
10
11
12
function foo(x) {
if (x === null || x === undefined) {
return;
}

console.log(`x is ${x}`);
}

foo(undefined);
foo(null);
foo(2);
// x is 2

nullundefined 爲 ECMAScript 5 個 primitive 中之二,最標準的作法就是真的使用 === 判斷 nullundefined

Falsy Value


1
2
3
4
5
6
7
8
9
10
11
12
function foo(x) {
if (!x) {
return;
}

console.log(`x is ${x}`);
}

foo(undefined);
foo(null);
foo(2);
// x is 2

由於 nullundefined 是 Falsy Value,視為 false,直接使用 ! 即可。

Conclusion


  • 由於 ECMAScript 的 nullundefined 是 Falsy Value,視為 false,因此有更精簡的寫法,不需要直接判斷 nullundefined

Reference


Dr. Axel Rauschmayer, Speaking JavaScript

2018-11-18