Affectation après ET logique (&&=)
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 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
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 à :
x && (x = y);
En revanche, il n'est pas équivalent à ce qui suit, et qui effectue quoi qu'il arrive une affectation :
x = x && y;
Exemples
>Utiliser l'affectation après ET logique
let x = 0;
let y = 1;
x &&= 0; // 0
x &&= 1; // 0
y &&= 1; // 1
y &&= 0; // 0
Spécifications
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-assignment-operators> |
Compatibilité des navigateurs
Chargement…