This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Присваивание логического И (&&=)
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 только в случае, если её текущее значениеистинноподобно.
In this article
Интерактивный пример
let a = 1;let b = 0;a &&= 2;console.log(a);// Expected output: 2b &&= 2;console.log(b);// Expected output: 0Синтаксис
expr1 &&= expr2;Описание
>Сокращённое вычисление
Логический оператор И вычисляется слева направо, делая возможным сокращённое вычисление выражения, согласно следующему правилу:
(ложноподобное выражение) && следующее выражение — вычисление останавливается на ложноподобном выражении;
Сокращённое вычисление хорошо тем, чтоследующее выражение не будетвычислено, т.е. всё, связанное с ним, будет проигнорировано (например, еслиследующее выражение представляет собой вызов функции, то он никогда не произойдёт).
Оператор присваивания логического И также поддерживает сокращённое вычисление, поэтомуx &&= y по сути то же самое, что и выражение ниже:
x && (x = y);В отличие от следующего примера, где операция присваивания произойдёт вне зависимости от результата вычисления:
x = x && y;Примеры
>Использование оператора присваивания логического И
let x = 0;let y = 1;x &&= 0; // 0x &&= 1; // 0y &&= 1; // 1y &&= 0; // 0Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-assignment-operators> |