論理積代入 (&&=)
論理積代入 (x &&= y
) 演算子は、x
が真値である場合にのみ代入を行います。
試してみましょう
構文
js
expr1 &&= expr2;
解説
短絡評価 (ショートサーキット)
論理積演算子は左から右に評価され、次のルールを使って短絡評価の可能性があるかどうかテストされます。
(偽値の式) && expr
は、偽値の式が短絡評価されます。
短絡評価とは、上記の expr
部分が評価されないことを意味します。したがって、評価された場合の副作用は発生しません (例えば、expr
が関数呼び出しである場合、呼び出しは行われません)。
論理積代入も短絡評価されます。これは、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 Language Specification # sec-assignment-operators |
ブラウザーの互換性
BCD tables only load in the browser