JavaScriptCoerción variable / conversión


Observaciones

Algunos idiomas requieren que defina con anticipación qué tipo de variable está declarando. JavaScript no hace eso; tratará de darse cuenta de eso por su cuenta. A veces esto puede crear un comportamiento inesperado.

Si utilizamos el siguiente HTML

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

Y recuperar su contenido a través de JS, no lo convertirá a un número, a pesar de que uno podría esperar que lo haga. Si usamos el siguiente fragmento de boilingPoint , se podría esperar que boilingPoint sea 100 . Sin embargo, JavaScript convertirá moreHeat en una cadena y concatenará las dos cadenas; El resultado será 0100 .

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

Podemos solucionar este problema convirtiendo freezingPoint en un número.

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

En la primera línea, convertimos "0" (la cadena) a 0 (el número) antes de almacenarlo. Después de hacer la adición, obtienes el resultado esperado ( 100 ).

Coerción variable / conversión Ejemplos relacionados