Логічні операції

JavaScript підтримує різні логічні операції для роботи з булевими значеннями (true або false). Основні логічні операції включають && (логічне І), || (логічне АБО) та ! (логічне НІ).

Приведення типів

У логічних операціях відбувається приведення типів операндів. Тобто операнд постає як true або false. Тільки-но інтерпретатор бачить логічний оператор, то робить приведення типів, навіть якщо операнд спочатку не був булем.

До false у логічному вираженні приводяться такі значення: 0, NaN, null, undefined, порожній рядок і false. Ві інші значення приводяться до true.

Логічне «І»

В JavaScript логічне "І" позначається оператором &&.

вираз && вираз

Цей оператор використовується для визначення, чи обидва операнди є true. Якщо обидва операнди true, то вираз виконується як true, в іншому випадку результат є false.

true && true = true // математичне розуміння: 1 && 1 = 1
false && true = false // математичне розуміння: 0 && 1 = 0
true && false = false // математичне розуміння: 1 && 0 = 0
false && false = false // математичне розуміння: 0 && 0 = 0

Але насправді в JavaScript логічне "І" повертає значення одного із операндів. Лівий операнд - якщо його можна привести до false, і правий - в інших випадках.

Кажуть, що логічне "І" (&&) "спотикається" на хибі (false). Тобто повертає перший операнд який приводиться до false і далі не робить операцію. Якщо ж всі операнди приводяться до правди (true), то повертається останній операнд.

// "Спотикається" на null, який приводиться до false і повертає null
console.log("Result: ", null && undefined && "hello"); 
// Пропускає "1" і "спотикається" на undefined який приводиться до false
// повертає undefined
console.log("Result: ", 1 && undefined && null && "hello"); // undefined
// Всі операнди приводяться до true - повертається останній true
console.log("Result: ", 123 && true && "hello"); //hello

Логічне "І" також можна використовувати в складних умовах:

Тут, a > b тобто 20 > 10 це правда true

b < c тобто 10 < 15 це правда true

Як результат: true && true -> true

Якби хоч одне значення привелося до false, результатом виразу було б false.

a > b тобто 20 > 10 це правда true

b < c тобто 10 < 5 це хиба false

Як результат: true && false -> false

Трохи більше прикладів:

Логічне «АБО»

В JavaScript, логічне "АБО" позначається оператором ||.

Цей оператор використовується для визначення, чи хоча б один із операндів є true. Якщо хоча б один з операндів є true, то вираз виконується як true. Якщо обидва операнди є false, результат є false.

Але насправді в JavaScript логічне "АБО" повертає значення одного із операндів. Лівий операнд - якщо його можна привести до true, і правий - в інших випадках.

Кажуть, що логічне "АБО" (||) "спотикається" на правді (true). Тобто повертає перший операнд який приводиться до true і далі не робить операцію. Якщо ж всі операнди приводяться до хиби (false), то повертається останній операнд.

Логічне "АБО" можна використовувати в складних умовах:

a > b тобто 20 > 10 це правда true

b < c тобто 10 < 5 це хиба false

Як результат: true || false -> true

Якщо хоч одне значення привелося до true, результатом виразу буде true. Якщо всі операнди false, то результатом буде теж false.

a > b тобто 7 > 10 це хиба false

b < c тобто 10 < 5 це хиба false

Як результат: false || false -> false

Трохи більше прикладів:

Логічне «НЕ»

В JavaScript, логічне "НЕ" позначається оператором !. Цей оператор використовується для зміни булевого значення операнду на протилежне. Якщо операнд був true, він стає false, і навпаки.

Це унарний оператор, тобто викорує операцію над одним операндрм.

Додаткові матеріали

Last updated