Convert to boolean
suggest changeBoolean(...)
will convert any data type into either true
or false
.
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
Empty strings and the number 0 will be converted to false, and all others will be converted to true.
A shorter, but less clear, form:
!!"true" === true
!!"false" === true
!!-1 === true
!!1 === true
!!0 === false
!!"" === false
!!"1" === true
!!"0" === true
!!{} === true
!![] === true
This shorter form takes advantage of implicit type conversion using the logical NOT operator twice, as described in http://stackoverflow.com/documentation/javascript/208/boolean-logic/3047/double-negation-x
Here is the complete list of boolean conversions from the ECMAScript specification
- if
myArg
of typeundefined
ornull
thenBoolean(myArg) === false
- if
myArg
of typeboolean
thenBoolean(myArg) === myArg
- if
myArg
of typenumber
thenBoolean(myArg) === false
ifmyArg
is+0
,‑0
, orNaN
; otherwisetrue
- if
myArg
of typestring
thenBoolean(myArg) === false
ifmyArg
is the empty String (its length is zero); otherwisetrue
- if
myArg
of typesymbol
orobject
thenBoolean(myArg) === true
Values that get converted to false
as booleans are called falsy (and all others are called truthy). See http://stackoverflow.com/documentation/javascript/208/comparison-operations#remarks.
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents