轉換為布林值

Boolean(...) 會將任何資料型別轉換為 truefalse

Boolean("true") === true
Boolean("false") === true
Boolean(-1) === true
Boolean(1) === true
Boolean(0) === false
Boolean("") === false
Boolean("1") === true
Boolean("0") === true
Boolean({}) === true
Boolean([]) === true

空字串和數字 0 將轉換為 false,其他所有字串將轉換為 true。

一種較短但不太清晰的形式:

!!"true" === true
!!"false" === true
!!-1 === true
!!1 === true
!!0 === false
!!"" === false
!!"1" === true
!!"0" === true
!!{} === true
!![] === true

這種較短的形式利用邏輯 NOT 運算子兩次隱式型別轉換,如 http://stackoverflow.com/documentation/javascript/208/boolean-logic/3047/double-negation-x 中所述

以下是 ECMAScript 規範中的布林轉換的完整列表

  • 如果 undefined 型別 undefinednull 然後 Boolean(myArg) === false
  • 如果 myArg 型別 boolean 然後 Boolean(myArg) === myArg
  • 如果 numbermyArg 那麼 Boolean(myArg) === false 如果 myArg+0‑0,或 NaN; 否則 true
  • 如果 myArg 屬於 string 那麼 Boolean(myArg) === false 如果 myArg 是空字串(它的長度為零); 否則 true
  • 如果 symbolobject myArg 那麼 Boolean(myArg) === true

轉換為 false 為 booleans 的值稱為 falsy (所有其他稱為 truthy )。請參閱比較操作