ECMAScript 提供 3 種方式手動轉型成 Boolean。
Version
ECMAScript 5
Boolean Function
Boolean(1) // ?
Boolean(0) // ?
Boolean('') // ?
Boolean('abc') // ?
Boolean({}) // ?
Boolean([]) // ?
Boolean(null) // ?
Boolean(undefined) // ?
Boolean(NaN) // ?
使用 Boolean() 將任意值轉型成 Boolean。
Boolean()可當成 constructor function,也能當成普通 function 用,在轉型時沒搭配new,故當成普通 function 當轉型

Ternary Operator
1 ? true : false // ?
0 ? true : false // ?
'' ? true : false // ?
'abc' ? true : false // ?
;({}) ? true : false // ?
;([]) ? true : false // ?
null ? true : false // ?
undefined ? true : false // ?
NaN ? true : false // ?
當使用 ?: 時,會促使 obj 自動轉型成 Boolean。

Not Operartor
!!1 // ?
!!0 // ?
!!'' // ?
!!'abc' // ?
!!{} // ?
!![] // ?
!!null // ?
!!undefined // ?
!!NaN // ?
第一個 ! 會促使 obj 自動轉型成 Boolean,但結果是反向的,所以還要再搭配一次 !變成正向。

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