Spec-Zone.ru › JavaScript

Логическое присваивание И (&&=)

Базовый уровень Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2020 года.

Оператор логического присваивания И (&&=) вычисляет правый операнд и присваивает его левому, только если левый операнд является truthy (истинным).

Попробуйте

let a = 1;
let b = 0;

a &&= 2;
console.log(a);
// Expected output: 2

b &&= 2;
console.log(b);
// Expected output: 0

Синтаксис

x &&= y

Описание

Логическое присваивание И кратко замыкается, что означает, что x &&= y эквивалентно x && (x = y), за исключением того, что выражение x вычисляется только один раз.

Присваивание не выполняется, если левая часть не является истинной, из-за краткого замыкания логического оператора И. Например, следующее не вызывает ошибку, несмотря на то, что x является const:

const x = 0;
x &&= 2;

Ниже также не сработает сеттер:

const x = {
  get value() {
    return 0;
  },
  set value(v) {
    console.log("Setter called");
  },
};

x.value &&= 2;

Фактически, если x не является истинным, y вообще не вычисляется.

const x = 0;
x &&= console.log("y evaluated");
// Logs nothing

Примеры

Использование логического присваивания И

let x = 0;
let y = 1;

x &&= 0; // 0
x &&= 1; // 0
y &&= 1; // 1
y &&= 0; // 0

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-assignment-operators

Совместимость с браузерами

Настольные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
logical_and_assignment
85
85
79
71
14
85
79
60
14
14.0
85
14
1.0.0
1.2
15.0.0

См. также

  • Логическое И (&&)
  • Оператор нулевого слияния (??)
  • Побитовое присваивание И (&=)
  • Truthy (истинный)
  • Falsy (ложный)

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND_assignment

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API