JavaScriptCoercizione / conversione variabile


Osservazioni

Alcune lingue richiedono di definire in anticipo quale tipo di variabile stai dichiarando. JavaScript non lo fa; cercherà di capirlo da solo. A volte questo può creare comportamenti imprevisti.

Se usiamo il seguente codice HTML

<span id="freezing-point">0</span>

E recuperare il suo contenuto attraverso JS, non verrà convertito in un numero, anche se ci si potrebbe aspettare a. Se usiamo il seguente frammento, ci si potrebbe aspettare che boilingPoint sia 100 . Tuttavia, JavaScript convertirà più moreHeat in una stringa e concatenerà le due stringhe; il risultato sarà 0100 .

var el = document.getElementById('freezing-point');
var freezingPoint = el.textContent || el.innerText;
var moreHeat = 100;
var boilingPoint = freezingPoint + moreHeat;

Possiamo risolvere questo problema convertendo esplicitamente freezingPoint in un numero.

var el = document.getElementById('freezing-point');
var freezingPoint = Number(el.textContent || el.innerText);
var boilingPoint = freezingPoint + moreHeat;

Nella prima riga, convertiamo "0" (la stringa) in 0 (il numero) prima di memorizzarlo. Dopo aver effettuato l'aggiunta, ottieni il risultato previsto ( 100 ).

Coercizione / conversione variabile Esempi correlati