Пояснено логічні значення JavaScript - Як використовувати логічні значення в JavaScript

Логічна

Логічні типи - це примітивний тип даних, який зазвичай використовується в мовах комп'ютерного програмування. За визначенням, логічне значення має два можливих значення: trueабо false.

У JavaScript часто існує неявний примус типу до логічного значення. Якщо, наприклад, у вас є оператор if, який перевіряє певний вираз, цей вираз буде примушений до логічного значення:

const a = 'a string'; if (a) { console.log(a); // logs 'a string' }

Є лише кілька значень, які будуть примушені до хибних:

  • false (насправді не примусово, оскільки це вже хибно)
  • нуль
  • невизначений
  • NaN
  • 0
  • "" (порожній рядок)

Усі інші значення будуть примушені до істини. Коли значення примусово ставиться до логічного значення, ми також називаємо це або `` помилковим '', або `` хибним ''.

Одним із способів використання примусу типу є використання операторів or ( ||) та та ( &&):

const a = 'word'; const b = false; const c = true; const d = 0 const e = 1 const f = 2 const g = null console.log(a || b); // 'word' console.log(c || a); // true console.log(b || a); // 'word' console.log(e || f); // 1 console.log(f || e); // 2 console.log(d || g); // null console.log(g || d); // 0 console.log(a && c); // true console.log(c && a); // 'word'

Як бачите, оператор або перевіряє перший операнд. Якщо це правда чи неправда, вона негайно повертає її (саме тому ми отримуємо слово "в першому випадку та true у другому випадку). Якщо він не відповідає дійсності або неправдивий, він повертає другий операнд (саме тому ми отримуємо слово в третьому випадку).

З оператором and працює це подібним чином, але, щоб "і" було правдою, обидва операнди повинні бути істинними. Отже, він завжди повертає другий операнд, якщо обидва істинні / істинні, інакше він повертає false. Ось чому в четвертому випадку ми отримуємо істину, а в останньому - слово.

Логічний об'єкт

Існує також власний об’єкт JavaScript, який обертає значення. Значення, передане як перший параметр, за необхідності перетворюється на логічне значення. Якщо значення пропущено, 0, -0, null, false, NaN, undefined або порожній рядок (""), об'єкт має початкове значення false. Усі інші значення, включаючи будь-який об'єкт або рядок "false", створюють об'єкт з початковим значенням true.

Не плутайте примітивні булеві значення true і false з істинними та хибними значеннями булевого об'єкта.

Детальніше

Будь-який об'єкт, значення якого не є невизначеним або нульовим, включаючи логічний об'єкт, значення якого хибне, при передачі в умовний оператор отримує значення true. Якщо значення true, це виконає функцію. Наприклад, умова в наступному операторі if має значення true:

const x = new Boolean(false); if (x) { // this code is executed }

Ця поведінка не застосовується до булевих примітивів. Наприклад, умова в наведеному нижче операторі if має значення false:

const x = false; if (x) { // this code is not executed }

Не використовуйте логічний об'єкт для перетворення небулевого значення в логічне значення. Натомість використовуйте Boolean як функцію для виконання цього завдання:

const x = Boolean(expression); // preferred const x = new Boolean(expression); // don't use

Якщо ви вказали будь-який об'єкт, включаючи логічний об'єкт, значення якого хибне, як початкове значення логічного об'єкта, новий логічний об'єкт має значення true.

const myFalse = new Boolean(false); // initial value of false const g = new Boolean(myFalse); // initial value of true const myString = new String('Hello'); // string object const s = new Boolean(myString); // initial value of true

Не використовуйте логічний об'єкт замість логічного примітиву.