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
myArgof typeundefinedornullthenBoolean(myArg) === false - if
myArgof typebooleanthenBoolean(myArg) === myArg - if
myArgof typenumberthenBoolean(myArg) === falseifmyArgis+0,‑0, orNaN; otherwisetrue - if
myArgof typestringthenBoolean(myArg) === falseifmyArgis the empty String (its length is zero); otherwisetrue - if
myArgof typesymbolorobjectthenBoolean(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