Функция конструктора Boolean() может использоваться для создания логических объектов, а также логических примитивных значений, представляющих либо значение true либо false .
В следующем коде я подробно описываю создание логических значений в JavaScript.
Образец: sample52.html
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
<!DOCTYPE html><html lang=»en»><body><script>
// Create a Boolean object using the new keyword and the Boolean() constructor.
var myBoolean1 = new Boolean(false);
console.log(typeof myBoolean1);
// Create a Boolean literal/primitive by directly using the number constructor without new.
var myBoolean2 = Boolean(0);
console.log(typeof myBoolean2);
// Create Boolean literal/primitive (constructor leveraged behind the scenes).
var myBoolean3 = false;
console.log(typeof myBoolean3);
console.log(myBoolean1, myBoolean2, myBoolean3);
</script></body></html>
|
Boolean() Параметры
Функция конструктора Boolean() принимает один параметр для преобразования в логическое значение (т. Е. true или false ). Любое допустимое значение JavaScript, отличное от 0, -0, null , false , NaN , undefined или пустая строка («»), будет преобразовано в true . В следующем примере мы создаем два значения логических объектов: одно true и одно false .
Образец: sample53.html
|
01
02
03
04
05
06
07
08
09
10
11
|
<!DOCTYPE html><html lang=»en»><body><script>
// Parameter passed to Boolean() = 0 = false, thus foo = false
var foo = new Boolean(0)
console.log(foo);
// Parameter passed to Boolean() = Math = true, thus bar = true
var bar = new Boolean(Math)
console.log(bar);
</script></body></html>
|
При использовании с new ключевым словом экземпляры из конструктора Boolean() создают фактический сложный объект. Вам следует избегать создания логических значений с помощью конструктора Boolean () (вместо этого используйте литеральные / примитивные числа) из-за потенциальных проблем, связанных с оператором typeof . Оператор typeof сообщает о булевых объектах как об объекте, а не о примитивной метке (булево), которую вы можете ожидать. Кроме того, буквальное / примитивное значение быстрее записывается.
Boolean() Свойства и методы
Объект Boolean() имеет следующие свойства:
Свойства (например, Boolean.prototype; ):
Свойства и методы экземпляра логического объекта
Экземпляры логических объектов имеют следующие свойства и методы (не включая унаследованные свойства и методы):
Свойства экземпляра (например, var myBoolean = false; myBoolean.constructor; ):
Методы экземпляра (например, var myNumber = false; myBoolean.toString(); ):
Непримитивные ложные булевы объекты преобразуются в истинные
false логический объект (в отличие от примитивного значения), созданный из конструктора Boolean() является объектом, и объекты преобразуются в true . Таким образом, при создании false логического объекта с помощью конструктора Boolean() само значение преобразуется в true . В следующем примере я демонстрирую, как false логический объект всегда «правдив».
Образец: sample54.html
|
01
02
03
04
05
06
07
08
09
10
11
|
<!DOCTYPE html><html lang=»en»><body><script>
var falseValue = new Boolean(false);
console.log(falseValue);
if (falseValue) { // Boolean objects, even false Boolean objects, are truthy.
console.log(‘falseValue is truthy’);
}
</script></body></html>
|
Если вам нужно преобразовать не логическое значение в логическое, просто используйте конструктор Boolean() без ключевого слова new и возвращаемое значение будет примитивным значением вместо логического объекта.
Некоторые вещи ложны, все остальное верно
Это уже упоминалось, но стоит упомянуть еще раз, поскольку оно относится к преобразованиям: если значение равно 0, -0, null , false , NaN , undefined или пустая строка («»), это false . Любое значение в JavaScript, кроме вышеупомянутых значений, будет преобразовано в true если используется в логическом контексте (то есть, if (true) {}; ).
Образец: sample55.html
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
|
<!DOCTYPE html><html lang=»en»><body><script>
// All of these return a false Boolean value.
console.log(Boolean(0));
console.log(Boolean(-0));
console.log(Boolean(null));
console.log(Boolean(false));
console.log(Boolean(»));
console.log(Boolean(undefined));
console.log(Boolean(null));
// All of these return a true Boolean value.
console.log(Boolean(1789));
console.log(Boolean(‘false’));
console.log(Boolean(Math));
console.log(Boolean(Array()));
</script></body></html>
|
Вывод
Очень важно, чтобы вы понимали, какие значения JavaScript сведены к false поэтому вы знаете, что все остальные значения считаются true .