Boolean Function 與 Not Operator 方式較常使用

ECMAScript 提供 3 種方式將任何值手動轉型成 Boolean。

Version


ECMAScript 5

Boolean Function


1
2
3
const obj = {};

console.log(Boolean(obj));

使用 Boolean() 將任意值轉型成 Boolean。

Boolean() 可當成 Constructor Function,也能當成普通 function 用,在轉型時沒搭配 new,故當成普通 function 當轉型

boolean000

Ternary Operator


1
2
3
const obj = {};

console.log(obj ? true : false);

當使用 ?: 時,會促使 obj 自動轉型成 Boolean。

boolean001

Not Operartor


1
2
3
const obj = {};

console.log(!!obj);

第一個 ! 會促使 obj 自動轉型成 Boolean,但結果是反向的,所以還要再搭配一次 !變成正向。

boolean002

Conclusion


  • 實務上 Boolean Function 與 Not Operator 方式較常使用
  • 以可讀性而言,Boolean Function 語意最好,就算不熟 ECMAScript 也能看懂
  • Not Operator 雖然最精簡,但動用了 ECMAScript 語言特性,若不熟 ECMAScript 會看不懂

Reference


Dr.Axel Rauschmayer, Speaking JavaScript

2018-11-12