The boolean primitive is a logical data type with only two values: true and false.
Boolean object
All values in JavaScript are implicitly true or false. The Boolean object can be used to coerce a value to a true or false boolean, based on the implicit true or false state of that value:
Boolean( "A string literal" ); > true Values that result in false include 0, null, undefined, NaN, an empty string (""), an omitted value, and a false boolean. All other values result in true.
Boolean( NaN ); > false Boolean( -0 ); > false Boolean( 5 ); > true Boolean( "false" ); // the value `"false"` is a string, and therefore implicitly true. > true Avoid using the Boolean object as a constructor. It creates an object containing a boolean value, not the boolean primitive you might expect:
const falseBoolean = Boolean( 0 ); const falseObject = new Boolean( 0 ); console.log( falseBoolean ); > false console.log( falseObject ); > Boolean { false } falseObject.valueOf(); > false Because all objects are inherently truthy, the resulting boolean object always loosely evaluates to true, even if it contains a false value:
const falseBoolean = Boolean( 0 ); const falseObject = new Boolean( 0 ); console.log( falseBoolean == true ); > false console.log( falseObject == true ); > false console.log( !!falseObject ); > true Check your understanding
Which of the following returns false?
0null"none"