Логический примитив — это логический тип данных, имеющий только два значения: 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 ?
0Null ."none" .