Conversión automática en JavaScript
Las siguientes expresiones en JavaScript son muy obvias.
var x = 10 + 10;
El valor dex
es20
.
x = 10 + '10';
El valor dex
en este caso es1010
porque el+
El operador está sobrecargado. Si alguno de los operandos es de tipo cadena, se realiza la concatenación de cadenas y si todos los operandos son números, se realiza la adición.
x = 10 - 10;
x = 10 - '10';
En ambos casos, el valor dex
estarán0
porque el-
el operador no está sobrecargado de esa manera y todos los operandos se convierten a números, si no lo están antes de que se realice la resta real (puede aclarar, si es que estoy equivocado).
Lo que sucede en la siguiente expresión.
x = '100' - -'150';
El valor dex
es250
. Lo que también parece ser obvio, pero esta expresión parece ser algo equivalente a la siguiente expresión.
x = '100' +'150';
Si hubiera sido así, estas dos cadenas se habrían concatenado y asignado.100150
ax
. Entonces, ¿por qué la adición se realiza en este caso?
EDITAR:
+'10' + 5
devoluciones15
y'a' + + 'b'
devolucionesaNaN
. ¿Alguien sabe por qué?