Booleanos

El primitivo booleano es un tipo de datos lógico con solo dos valores: true y false.

Todos los valores en JavaScript son true o false de forma implícita. El objeto Boolean se puede usar para forzar un valor a un booleano true o false, según el estado implícito de verdadero o falso de ese valor:

Boolean( "A string literal" );
> true

Los valores que generan false incluyen 0, null, undefined, NaN, una cadena vacía (""), un valor omitido y un valor booleano false. Todos los demás valores generan true.

Boolean( NaN );
> false

Boolean( -0 );
> false

Boolean( 5 );
> true

Boolean( "false" ); // the value `"false"` is a string, and therefore implicitly true.
> true

Evita usar el objeto Boolean como constructor. Crea un objeto que contiene un valor booleano, no la primitiva booleana que podrías esperar:

const falseBoolean = Boolean( 0 );
const falseObject = new Boolean( 0 );

console.log( falseBoolean  );
> false

console.log( falseObject  );
> Boolean { false }

falseObject.valueOf();
> false

Debido a que todos los objetos son intrínsecamente verdaderos, el objeto booleano resultante siempre se evalúa de forma imprecisa como verdadero, incluso si contiene un valor false:

const falseBoolean = Boolean( 0 );
const falseObject = new Boolean( 0 );

console.log( falseBoolean == true );
> false

console.log( falseObject == true );
> false

console.log( !!falseObject );
> true

Verifica tu comprensión

¿Cuál de las siguientes opciones muestra false?

"none"
null
0
Una string vacía