Sto cercando di imparare Javascript. Qui sono confuso con il seguente codice.
http://rendera.heroku.com/usercode/eae2b0f40cf503b36ee346f5c511b0e29fc82f9e
Quando inserisco x+y
nella funzione, ciò non funziona. Ad esempio 2+2=22
, 5+7=57
Ma /
, *
, -
stanno funzionando. Perché +
non funziona? Mi aiuti per favore. Grazie mille in anticipo
Una o entrambe le variabili è una stringa anziché un numero. Questo rende la concatenazione della stringa +
do.
'2' + 2 === '22'; // true 2 + 2 === 4; // true
Gli altri operatori aritmetici / * -
eseguiranno una conversione toNumber
sulla / e stringa / e.
'3' * '5' === 15; // true
Un modo rapido per convertire una stringa in un numero consiste nell’utilizzare l’operatore unario +
.
+'2' + 2 === 4; // true
… o con le tue variabili:
+x + +y
+
ha due usi. Uno è addizione, l’altro tuttavia è concatenazione di stringhe. Se una o entrambe le variabili sono una stringa, +
le concatenerà.
Avrai bisogno di usare parseInt
o parseFloat
per trasformare una stringa in un numero.
In Javascript l’operatore + può eseguire l’aggiunta o la concatenazione a seconda del tipo dei suoi operandi. Quando i numeri sono usati con + usa l’addizione, ma quando le stringhe vengono usate con + concatena (unisce le stringhe) invece
Se i numeri che stai cercando di aggiungere sono 10 e 12, se si suppone che la sum risultante sia 22, allora dovresti probabilmente farlo come
+10 + +12
E il risultato potrebbe essere una stringa come 1012 se uno o entrambi i numeri sono una stringa.
questo funziona sempre
((x*1) + (y*1))
Unario plus dovrebbe funzionare:
var totalVal = (+2) + (+2); alert(totalVal); // result 4
L’operatore di addizione funziona come segue:
1) Se almeno un operando è una stringa, un altro viene convertito in stringa e viene eseguita la concatenazione;
1 + "2" // "12" "2" + "3" // "23" "2" + null // "2null", null is converted to "null"
2) In altri casi entrambi gli operandi vengono convertiti in numeri:
1 + null // 2, null is converted to 0 1 + undefined // NaN, undefined is converted to NaN
Controlla l’ operatore aggiuntivo post JavaScript demistificato per maggiori dettagli.