The logical AND assignment (x &&= y
) operator only assigns if x
is truthy.
Logical AND assignment (&&=)
Try it
Syntax
expr1 &&= expr2
Description
Short-circuit evaluation
The logical AND operator is evaluated left to right, it is tested for possible short-circuit evaluation using the following rule:
(some falsy expression) && expr
is short-circuit evaluated to the falsy expression;
Short circuit means that the expr
part above is not evaluated, hence any side effects of doing so do not take effect (e.g., if expr
is a function call, the calling never takes place).
Logical AND assignment short-circuits as well meaning that x &&= y
is equivalent to:
x && (x = y);
And not equivalent to the following which would always perform an assignment:
x = x && y;
Examples
Using logical AND assignment
let x = 0; let y = 1; x &&= 0; // 0 x &&= 1; // 0 y &&= 1; // 1 y &&= 0; // 0
Specifications
Browser compatibility
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | Deno | Node.js | |
Logical_AND_assignment |
85
|
85
|
79
|
No
|
71
|
14
|
85
|
85
|
79
|
60
|
14
|
14.0
|
1.2
|
15.0.0
|
See also
© 2005–2022 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