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