booleanos

O primitivo booleano é um tipo de dado lógico com apenas dois valores: true e false.

Todos os valores em JavaScript são implicitamente true ou false. O objeto Boolean pode ser usado para coagir um valor para um Booleano true ou false, com base no estado implícito (verdadeiro ou falso) :

Boolean( "A string literal" );
> true

Os valores que resultam em false incluem 0, null, undefined, NaN, um valor string (""), um valor omitido e um booleano false. Resultado de todos os outros valores em true.

Boolean( NaN );
> false

Boolean( -0 );
> false

Boolean( 5 );
> true

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

Evite usar o objeto Boolean como construtor. Ele cria um objeto contendo um valor booleano, não o primitivo booleano que você espera:

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

console.log( falseBoolean  );
> false

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

falseObject.valueOf();
> false

Como todos os objetos são inerentemente verdadeiros, o objeto booleano resultante sempre avalia vagamente como verdadeiro, mesmo se contiver um valor false:

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

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

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

Teste seu conhecimento

Qual das opções a seguir retorna false?

Uma string vazia
"none".
Null.
0