Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
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).
Dans cet article
Exemple interactif
let a = 1;let b = 0;a &&= 2;console.log(a);// Expected output: 2b &&= 2;console.log(b);// Expected output: 0Syntaxe
expr1 &&= expr2;Description
>Évaluation en court-circuit
L'opérateurET 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 queexprn'est pas évaluée. Tout effet de bord lié à cette évaluation n'aura pas lieu (par exemple siexpr 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 etx &&= 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; // 0x &&= 1; // 0y &&= 1; // 1y &&= 0; // 0Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-assignment-operators> |