Булевы значения

Логический примитив — это логический тип данных, имеющий только два значения: true и false .

Логический объект

Все значения в JavaScript неявно имеют значение true или false . Объект Boolean можно использовать для приведения значения к true или false логическому значению на основе неявного состояния true или false этого значения:

Boolean( "A string literal" );
> true

Значения, которые приводят к false включают 0 , null , undefined , NaN , пустую строку ( "" ), пропущенное значение и логическое значение false . Все остальные значения возвращают значение true .

Boolean( NaN );
> false

Boolean( -0 );
> false

Boolean( 5 );
> true

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

Избегайте использования объекта Boolean в качестве конструктора. Он создает объект , содержащий логическое значение, а не логический примитив, который вы могли бы ожидать:

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

console.log( falseBoolean  );
> false

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

falseObject.valueOf();
> false

Поскольку все объекты по своей сути правдивы , результирующий логический объект всегда приблизительно оценивается как true, даже если он содержит false значение:

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

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

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

Проверьте свое понимание

Что из следующего возвращает false ?

Пустая строка
0
null
"none"