Оператор логического присваивания (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, особенно при работе с условными операторами и значениями по умолчанию. Однако, их использование может снизить читаемость кода, если они используются слишком часто или в сложных выражениях, поэтому их следует использовать с умом.