Sistema l'addizione
Questo codice chiede all’utente di inserire due numeri, quindi ne mostra la somma.
Funziona in maniera errata. L’output nell’esempio qui sotto è 12
(per i valori inseriti di default).
Perché? Prova a correggerlo, il risultato deve essere 3
.
let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);
alert(a + b); // 12
La ragione è che il prompt
ritorna delle stringhe .
Quindi le variabili hanno valori "1"
e "2"
rispettivamente.
let a = "1"; // prompt("First number?", 1);
let b = "2"; // prompt("Second number?", 2);
alert(a + b); // 12
Quello che dovremmo fare è convertire le stringhe in numeri prima che vengano sommate. Questo può essere fatto facendole precedere da +
o usando Number()
Per esempio, appena prima di prompt
:
let a = +prompt("First number?", 1);
let b = +prompt("Second number?", 2);
alert(a + b); // 3
Oppure in alert
:
let a = prompt("First number?", 1);
let b = prompt("Second number?", 2);
alert(+a + +b); // 3
Usando +
sia in modalità unaria che binaria. Sembra divertente vero?