JS метод Boolean.constructor()
Загальний опис
Boolean.constructor - це основна функція, що представляє булевий тип даних. Вона служить для створення нових об'єктів Boolean, які, в свою чергу, представляють два можливі булеві значення: true або false.
Цей конструктор є корисним у ситуаціях, коли вам потрібно створити об'єкт Boolean, а не просто булевий літерал. Хоча в більшості випадків використання булевого літералу є більш поширеним, конструктор дає можливість виконувати різноманітні операції зі створеними об'єктами.
let boolValue = new Boolean(false);
console.log(boolValue); // [Boolean: false]
Основні сфери застосування
Конструктор Boolean зазвичай використовується у ситуаціях, де вам потрібно використовувати методи або властивості, що належать прототипу Boolean. В інших випадках рекомендовано використовувати булеві літерали.
Конвертація типів: Коли ви передаєте значення до Boolean.constructor, воно автоматично конвертується в булеве значення.
let trueValue = new Boolean(1);
console.log(trueValue); // [Boolean: true]
let falseValue = new Boolean(0);
console.log(falseValue); // [Boolean: false]
Об'єкт проти літералу: Об'єкти, створені за допомогою Boolean.constructor, відрізняються від булевих літералів.
let objBool = new Boolean(false);
let litBool = false;
console.log(typeof objBool); // 'object'
console.log(typeof litBool); // 'boolean'
Важливі відмінні риси
Об'єкти, створені за допомогою Boolean.constructor, завжди будуть розглядатися як "truthy", незалежно від їх фактичного булевого значення. Це може призвести до непередбачуваної поведінки у умовних операторах.
let trickyBool = new Boolean(false);
if (trickyBool) {
console.log("Це повідомлення буде виведено, хоча значення 'trickyBool' є false!");
}
автор: Bond
- Порада
-
Якщо ви вирішили використовувати
автор: BondBoolean.constructorабо інші конструктори, рекомендується детально вивчити їх внутрішню реалізацію в ECMAScript специфікації. Це допоможе глибше розуміти, як JavaScript обробляє типи даних і їх конвертацію. - Порада
-
Пам'ятайте, що в більшості випадків краще використовувати булеві літерали замість об'єктів
BoleanОб'єкти, створені за допомогоюBoolean.constructor, можуть призвести до плутанини та непередбачуваних помилок у коді.Тому рекомендується використовувати булеві літерали (
автор: Bondtrueтаfalse) замість використанняBoolean.constructor. Це спростить ваш код і зменшить ризик помилок. - Нотатка
-
Навіть якщо ви створили об'єкт Boolean зі значенням
false, він все одно буде розглядатися як "truthy" у умовних виразах. Щоб уникнути непередбачуваної поведінки, завжди використовуйте булеві літерали замість об'єктівBoolean.
автор: Bondlet trickyBool = new Boolean(false); if (trickyBool) { console.log("Це виконається, незважаючи на значення 'false' у 'trickyBool'!"); } - Нотатка
-
Коли ви використовуєте
Boolean.constructor, будьте уважні з автоматичною конвертацією значень. Наприклад, пустий рядок конвертується вfalse, але ненульове число – вtrue.
автор: Bondlet example1 = new Boolean(""); console.log(example1); // [Boolean: false] let example2 = new Boolean(5); console.log(example2); // [Boolean: true]
Синтаксис
new Boolean(value)
Boolean(value)
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 1 | 1 | 1 | 4 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
У цьому прикладі ми створюємо новий об'єкт Boolean з використанням Boolean.constructor. Як можна бачити, навіть якщо значення дорівнює false, об'єкт все одно існує і є інстансом класу Boolean.
// Створюємо новий об'єкт Boolean зі значенням false
let boolObj = new Boolean(false);
// Перевіряємо, чи є наш об'єкт інстансом Boolean
console.log(boolObj instanceof Boolean); // true
Boolean.constructor автоматично конвертує передані йому значення до булевого типу. Якщо передати число 0 або пустий рядок, конвертоване значення буде false.
// Створюємо об'єкти Boolean з різних значень
let boolFromNumber = new Boolean(0);
let boolFromString = new Boolean("");
console.log(boolFromNumber); // [Boolean: false]
console.log(boolFromString); // [Boolean: false]
Коментарі
Коментарів ще немає — будьте першим!