1: Pourquoi le résultat de foo && baz
pas 1? Parce que vrai est 1.
var foo = 1; var baz = 2; foo && baz; // returns 2, which is true
2: Il y a deux points forts dans la console.log(foo + +bar);
Quel est leur sens?
var foo = 1; var bar = '2'; console.log(foo + +bar);
C'est parce que l'opérateur &&
( ET logique ) renvoie la valeur du dernier opérande qu'il a évalué. Puisque foo
est true
, il doit évaluer la bar
pour déterminer le résultat de l'expression (il ne sera true
si la bar
est également true
).
Le contraire se produirait avec le ||
( OR logique ) opérateur. Dans ce cas, puisque foo
est true
, le résultat de l'expression est réputé être true
sans avoir à évaluer la bar
, donc la valeur de foo
sera renvoyée.
En ce qui concerne votre deuxième question, l'opérateur unary +
permet de convertir la chaîne '2'
en numéro 2
.
&&
renvoie la valeur de la dernière valeur évaluée. '&&' est un opérateur. La plupart du temps, il l'utilisait dans un contexte comme celui-ci
if ( something && somethingelse ) {}
en d'autres termes
0 && 2 //would return 0 because 0 is a falsy value 12 && 10 && 0 && 100 // would return 0 to 10 && 123 && "abc" // returns "abc"
+
Est un opérateur mathématique, mais il peut être utilisé pour convertir une chaîne en un nombre.
1 + 1 = 2 1 + '1' = 11 //van damme would like this one 1 + +'1' = 2 // somce '1' got converted to a number
Javascript suit l' évaluation des courts-circuits . Donc, selon cela, javascript renvoie la dernière valeur si les deux valeurs sont vraies