Логические операторы ( || , && , ! ) обычно используются с булевыми (логическими) значениями, при этом возвращаемое ими значение также является булевым.
Операторы && (И) и || (ИЛИ) фактически возвращают значение одного из операндов, поэтому, если эти операторы используются с не булевыми величинами, то возвращаемая ими величина также может быть не булевой.
Оператор | Использование | Описание |
Логическое И (&&) | expr1 && expr2 (Логическое И) |
Таким образом, при использовании булевых величин в качестве операндов, оператор && возвращает true, если оба операнда true; в противном случае возвращает false. |
Логическое ИЛИ (||) | expr1 || expr2 (Логическое ИЛИ) |
Таким образом, при использовании булевых величин в качестве операндов, оператор || возвращает true, если один из операндов true; если же оба false, то возвращает false. |
Логическое НЕ (!) | !expr (Логическое НЕ) |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
let userAge = { age: null, setAge(age) { this.age = age || 10; }, }; userAge.setAge(); // не передаем аргументы в метод console.log(userAge.age); // 10 userAge.setAge(25); console.log(userAge.age); // 25 |
Оператор логического присваивания a &&= b передает в переменную a значение переменной b, только если значение a истинно:
1 2 3 4 5 6 7 8 9 10 |
let a = 5; let b = 10; a &&= b; console.log(a); // 10 // Строку 4 можно заменить равнозначным кодом: // a && (a = b) // или // if (a) a = b |
Оператор логического присваивания a ||= b передает в переменную a значение переменной b, только если значение a ложно:
1 2 3 4 5 6 7 8 9 10 |
let num1 = 0; let num2 = 10; num1 ||= num2; console.log(num1); // 10 // Строку 4 можно заменить равнозначным кодом: // a || (a = b) // или // if (!a) a = b |
Оператор условного присваивания a ??= b передает в переменную a значение переменной b, только если значение a равно undefined или null:
1 2 3 4 5 6 7 8 |
let num1 = null; let num2 = 10; num1 ??= num2; console.log(num1); // 10 // Строку 4 можно заменить равнозначным кодом: // a ?? (a = b) |