JavaScript Variable coercion/conversion Converting to boolean

Help us to keep this website almost Ad Free! It takes only 10 seconds of your time:
> Step 1: Go view our video on YouTube: EF Core Bulk Extensions
> Step 2: And Like the video. BONUS: You can also share it!

Example

Boolean(...) 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://www.riptutorial.com/javascript/example/3047/double-negation----x-


Here is the complete list of boolean conversions from the ECMAScript specification

  • if myArg of type undefined or null then Boolean(myArg) === false
  • if myArg of type boolean then Boolean(myArg) === myArg
  • if myArg of type number then Boolean(myArg) === false if myArg is +0, ‑0, or NaN; otherwise true
  • if myArg of type string then Boolean(myArg) === false if myArg is the empty String (its length is zero); otherwise true
  • if myArg of type symbol or object then Boolean(myArg) === true

Values that get converted to false as booleans are called falsy (and all others are called truthy). See Comparison Operations.



Got any JavaScript Question?