Curiosidad Javascript [o "concatena en vez de sumar"]


[En realidad no es una curiosidad sino que un error de lógica de programación]

Estoy armando un código para un generador… sí, a las 4AM., y me apareció la siguiente curiosidad en Javascript:

considerando que tengo un textbox con el nombre cantidad que comienza con un 1 como valor

[sourcecode=”JScript”]

var id = jQuery(“#cantidad”).val();
id=id+1;

[/sourcecode]

al primer click me da 11

al segundo 111

al tercer 1111

Lo mismo con

[sourcecode=”javascript”]

var id = jQuery(“#cantidad”).val();
id+=1;

[/sourcecode]

La explicación, muy fácil, el valor id es un String, y lo que hace el + es concatenar el valor en vez de sumarlo.

La solución, aún más fácil, convertir el String en Int.

De la manera poco elegante:

[sourcecode=”javascript”]

id=(id*1)+1;

[/sourcecode]

o de la de caballeros:

[sourcecode=”javascript”]

id=parseInt(id)+1;

[/sourcecode]

Esto es parte del código inservible pero útil para los que no conozcan cómo parchar el error 😛

Saludos


4 repuestas a “Curiosidad Javascript [o "concatena en vez de sumar"]”

  1. gracias por el tip por q lo había olvidado hace ya un par de años que no programo en javascript y ps la memoria en algunos momentos falla..prefiero la manera poco elegante es la que mas fácilmente recuerdo jajaja

Agregar un comentario

Su dirección de correo no se hará público.

This site uses Akismet to reduce spam. Learn how your comment data is processed.


Notice: ob_end_flush(): failed to send buffer of zlib output compression (0) in /home2/bredecl/public_html/wp-includes/functions.php on line 5212