Логические операторы присваивания в JavaScript

В этом руководстве вы узнаете о логических операторах присваивания JavaScript, включая оператор OR( ||= ), оператор AND( &&= ) и нулевой оператор присваивания( ??= ).

ES2021 представляет 3 логических оператора присваивания, в том числе:

  • Логический оператор OR( ||= )
  • Логический оператор AND( &&= )
  • Нулевой объединяющий оператор ( ??= )

OR

Логический оператор присваивания OR( ||= ) принимает два операнда и присваивает правый операнд левому операнду, если левый операнд ложен:

x ||= y

В этом синтаксисе оператор ||= присваивает y значению x только в том случае, если x является ложным. Например:

let title; 
title ||= 'untitled'; 

console.log(title);

Выход:

untitled

В этом примере переменная title не undefined, следовательно, она ложна. Поскольку title является ложным, оператор ||= присваивает заголовку 'untitled' title Вывод показывает untitled, как и ожидалось.

Пример:

let title = 'JavaScript Awesome'; 
title ||= 'untitled'; 

console.log(title);

Выход:

'JavaScript Awesome'

В этом примере title 'JavaScript Awesome' поэтому он соответствует действительности. Таким образом, логический оператор присваивания OR( ||= ) не присваивает строку 'untitled' переменной title.

Логический оператор присваивания OR:

x ||= y

Эквивалентен следующему оператору, в котором используется логический оператор OR:

x ||(x = y)

Как и логический оператор OR, логический оператор присваивания OR также вычисляет по короткой схеме. Это означает, что логический оператор присваивания OR выполняет присваивание только тогда, когда x является ложным.

В следующем примере оператор используется для отображения сообщения по умолчанию, если элемент результата поиска пуст:

document.querySelector('.search-result').textContent ||= 'Sorry! No result found';

AND

Логический оператор присваивания AND присваивает y значению x только в том случае, если x является истинным:

x &&= y;

Логический оператор присваивания AND также вычисляет по короткой схеме. Это означает, что

x &&= y;

Эквивалентно:

x &&(x = y);

В следующем примере используется логический оператор присваивания AND для изменения фамилии объекта- person, если эта фамилия правдива:

let person = {
    firstName: 'Jane',
    lastName: 'Doe',
};
 
person.lastName &&= 'Smith';
 
console.log(person);

Выход:

{firstName: 'Jane', lastName: 'Smith'}

Нулевой объединяющий оператор

Нулевой оператор присваивания слияния присваивает y только x, если x имеет значение null или undefined :

x ??= y;

Это эквивалентно следующему оператору, в котором используется нулевой оператор объединения:

x ??(x = y);

В следующем примере используется нулевой оператор присваивания для добавления отсутствующего свойства к объекту:

let user = {
    username: 'Satoshi'
};
user.nickname ? ?='anonymous'; 

console.log(user);

Выход:

{username: 'Satoshi', nickname:'anonymous'}

В этом примере user.nickname undefined, следовательно, он нулевой. Нулевой оператор присваивания присваивает строку 'anonymous' user.nickname.

Заключение

  • Логический оператор присваивания OR( x ||= y ) присваивает y только x, если x является ложным.
  • Логический оператор присваивания AND( x &&= y ) присваивает y только x, если x является истинным.
  • Оператор нулевого объединения присваивания( x ??= y ) присваивает y только x, если x является нулевым.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript