El problema típico planteado para la concatenación de cadenas gira en torno a algunos problemas:
- el símbolo
+
está sobrecargado
- errores simples
- los programadores son perezosos
# 1
El primer y más importante problema con el uso de +
para la concatenación de cadenas y además es que estás usando +
para la concatenación de cadenas y adición.
si tiene las variables a
y b
, y establece c = a + b
, existe una ambigüedad que depende de los tipos de a
y b
. Esta ambigüedad te obliga a tomar medidas adicionales para mitigar el problema:
Concat de cadena:
c = '' + a + b;
Adición:
c = parseFloat(a) + parseFloat(b);
Esto me lleva a mi segundo punto
# 2
Es muy fácil convertir accidentalmente una variable en una cadena sin darse cuenta. También es fácil olvidar que su entrada viene como una cadena:
a = prompt('Pick a number');
b = prompt('Pick a second number');
alert( a + b );
Producirá resultados no intuitivos porque la solicitud devuelve el valor de cadena de la entrada.
# 3
La necesidad de escribir parseFloat
o Number()
cada vez que quiero hacer una adición es tediosa y molesta. Me considero lo suficientemente inteligente como para recordar no estropear mis tipos dinámicos, pero eso no significa que nunca haya arruinado mis tipos dinámicos . La verdad del asunto es que soy demasiado perezoso para escribir parseFloat
o Number()
cada vez que lo hago, porque hago mucho de adición.
¿Solución?
No todos los idiomas usan +
para la concatenación de cadenas. PHP usa .
para concatenar cadenas, lo que ayuda a distinguir cuándo desea agregar números y cuándo desea unir cadenas.
Se podría usar cualquier símbolo para concatenar cadenas, pero la mayoría ya está en uso, y es mejor evitar la duplicación. Si tuviera mi camino, probablemente usaría _
para unir cadenas y no permitiría _
en los nombres de variable.