Thanks to visit codestin.com
Credit goes to developer.mozilla.org

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

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

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨сентябрь 2020 г.⁩.

Оператор присваивания логического И (x &&= y) присваивает значение переменной x только в случае, если её текущее значение истинноподобно.

Интерактивный пример

let a = 1;
let b = 0;

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

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

Синтаксис

js
expr1 &&= expr2;

Описание

Сокращённое вычисление

Логический оператор И вычисляется слева направо, делая возможным сокращённое вычисление выражения, согласно следующему правилу:

(ложноподобное выражение) && следующее выражение — вычисление останавливается на ложноподобном выражении;

Сокращённое вычисление хорошо тем, что следующее выражение не будет вычислено, т.е. всё, связанное с ним, будет проигнорировано (например, если следующее выражение представляет собой вызов функции, то он никогда не произойдёт).

Оператор присваивания логического И также поддерживает сокращённое вычисление, поэтому x &&= y по сути то же самое, что и выражение ниже:

js
x && (x = y);

В отличие от следующего примера, где операция присваивания произойдёт вне зависимости от результата вычисления:

js
x = x && y;

Примеры

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

js
let x = 0;
let y = 1;

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

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

Specification
ECMAScript® 2026 Language Specification
# sec-assignment-operators

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

Смотрите также