Pourquoi l'expression 1 && 2
est-elle évaluée à 2?Pourquoi 1 && 2 renvoie-t-il 2?
console.log("1 && 2 = " + (1 && 2));
Pourquoi l'expression 1 && 2
est-elle évaluée à 2?Pourquoi 1 && 2 renvoie-t-il 2?
console.log("1 && 2 = " + (1 && 2));
Selon MDN:
expr1 && expr2
retoursexpr1
si elle peut être convertie enfalse
; sinon, renvoieexpr2
. Ainsi, lorsqu'il est utilisé avec des valeurs booléennes,&&
renvoietrue
si les deux opérandes sont vrais; sinon, renvoiefalse
.
Parce que 1 peut être évaluée à true
, 1 && 2
rendements 2
.
& & (et opérateur) renvoie la dernière valeur (côté droit) tant que la chaîne est "véridique".
si vous essayez 0 & & 2 -> le résultat serait 0 (ce qui est "falsy")
Selon cette page:
ET renvoie la première valeur de la falsification ou la dernière valeur si aucune n'a été trouvée. OU renvoie le premier vrai.
Pour plusieurs opérateurs dans la même déclaration:
priorité du ET & opérateur & est supérieur ou ||, il exécute avant OU.
alerte (5 || 1 & & 0); // 5
Expliqué et a donné un autre lien. – coder87
C'est ce qu'on appelle les raccourcis booléens. Vous pouvez faire des choses similaires avec '||'. par exemple .. '0 || 1 || 2 "retournerait 1, où' 0 && 1 && 2' retournerait 0. C'est parce que dans le premier exemple '||' quand il frappe 1, la condition OU est remplie, il ne faut pas aller plus loin et court-circuiter le Où avec le AND &&, la première condition rend le et impossible donc court-circuite le 1 & 2 .. – Keith