J'essaie d'apprendre le Javascript. Ici, je suis confondu avec le code suivant.
http://rendera.heroku.com/usercode/eae2b0f40cf503b36ee346f5c511b0e29fc82f9e
Quand je mets x+y
dans la fonction, ça ne va pas. Par exemple 2+2=22
, 5+7=57
Mais /
, *
, -
fonctionnent. Pourquoi +
ne fonctionne-t-il pas? Aidez-moi, s'il vous plaît. Merci beaucoup d'avance
Une ou les deux variables sont une chaîne au lieu d’un nombre. Cela permet à la +
de faire la concaténation de chaînes.
'2' + 2 === '22'; // true
2 + 2 === 4; // true
Les autres opérateurs arithmétiques / * -
effectueront une conversion toNumber
sur la ou les chaînes.
'3' * '5' === 15; // true
Un moyen rapide de convertir une chaîne en nombre consiste à utiliser l'opérateur unaire +
.
+'2' + 2 === 4; // true
... ou avec vos variables:
+x + +y
+
a deux utilisations. L'un est l'addition, l'autre est la concaténation de chaînes. Si l'une de vos variables ou les deux sont une chaîne, +
les concaténera.
Vous devrez utiliser parseInt
ou parseFloat
pour transformer une chaîne en nombre.
En Javascript, l'opérateur + peut effectuer une addition ou une concaténation en fonction du type de ses opérandes. Lorsque les nombres sont utilisés avec +, il utilise l'addition, mais lorsque les chaînes sont utilisées avec +, il concatène (joint les chaînes) à la place.
cela fonctionne à chaque fois
((x*1) + (y*1))
Si les nombres que vous essayez d’ajouter sont 10 et 12, si la somme résultante est supposée être 22, alors vous devriez probablement le faire comme
+10 + +12
Et le résultat pourrait être une chaîne telle que 1012 si l'un des nombres ou les deux sont une chaîne.
L'opérateur d'addition fonctionne de la manière suivante:
1) Si au moins un opérande est une chaîne, un autre est converti en chaîne et la concaténation est effectuée.
1 + "2" // "12"
"2" + "3" // "23"
"2" + null // "2null", null is converted to "null"
2) Dans les autres cas, les deux opérandes sont convertis en nombres:
1 + null // 2, null is converted to 0
1 + undefined // NaN, undefined is converted to NaN
Consultez la publication L'opérateur d'addition de JavaScript démystifié pour plus de détails.
Unary plus devrait fonctionner:
var totalVal = (+2) + (+2);
alert(totalVal);
// result 4