Функция конструктора 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
.