
Оператор логического присваивания (logical assignment operator) - это комбинация оператора присваивания и логического оператора, который позволяет сократить запись, когда необходимо проверить значение переменной и присвоить ей новое значение на основе этой проверки.
В JavaScript есть три оператора логического присваивания: ||=, &&=, ??=.
Оператор ||= (OR-присваивание) присваивает переменной значение справа от оператора, только если левая переменная имеет значение, которое преобразуется в логическое значение false (например, null, undefined, 0, false, NaN).
Синтаксис оператора ||=:
variable ||= valueПример использования оператора ||=:
let x = null
x ||= "default value"
console.log(x) // Вывод: "default value"В этом примере, мы используем оператор ||= для присваивания переменной x значения “default value”, потому что ее исходное значение null преобразуется в логическое значение false.
Оператор &&= (AND-присваивание) присваивает переменной значение справа от оператора, только если левая переменная имеет значение, которое преобразуется в логическое значение true (например, любое значение, кроме null, undefined, 0, false, NaN).
Синтаксис оператора &&=:
variable &&= valueПример использования оператора &&=:
let x = 10
x &&= 20
console.log(x) // Вывод: 20В этом примере, мы используем оператор &&= для присваивания переменной x значения 20, потому что ее исходное значение 10 преобразуется в логическое значение true.
Оператор ??= (Nullish Coalescing-присваивание) присваивает переменной значение справа от оператора, только если левая переменная имеет значение null или undefined.
Синтаксис оператора ??=:
variable ??= valueПример использования оператора ??=:
let x = null
x ??= "default value"
console.log(x) // Вывод: "default value"В этом примере, мы используем оператор ??= для присваивания переменной x значения “default value”, потому что ее исходное значение null.
Операторы логического присваивания могут быть полезны для написания более короткого и читаемого кода в JavaScript, особенно при работе с условными операторами и значениями по умолчанию. Однако, их использование может снизить читаемость кода, если они используются слишком часто или в сложных выражениях, поэтому их следует использовать с умом.