Affectation après ET logique (&&=)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.

L'opérateur d'affectation après ET logique (x &&= y) n'affecte la valeur de l'opérande droit uniquement si l'opérande gauche est équivalent à vrai (truthy).

Exemple interactif

let a = 1;
let b = 0;

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

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

Syntaxe

js
expr1 &&= expr2;

Description

Évaluation en court-circuit

L'opérateur ET logique est évalué de gauche à droite et le moteur vérifie s'il peut utiliser un court-circuit avec la régle suivante :

(une expression équivalente à faux) && expr sera court-circuitée pour fournir directement l'expression équivalente à faux.

Ce « court-circuit » indique que expr n'est pas évaluée. Tout effet de bord lié à cette évaluation n'aura pas lieu (par exemple si expr est un appel de fonction, la fonction n'est pas exécutée).

L'opérateur d'affectation après ET logique utilise également ce court-circuit et x &&= y est donc équivalent à :

js
x && (x = y);

En revanche, il n'est pas équivalent à ce qui suit, et qui effectue quoi qu'il arrive une affectation :

js
x = x && y;

Exemples

Utiliser l'affectation après ET logique

js
let x = 0;
let y = 1;

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

Spécifications

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

Compatibilité des navigateurs

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Logical AND assignment (x &&= y)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Voir aussi