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

Sábado, Febrero 13, 2010 3:57
Posted in category Sin categoría

[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


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

al primer click me da 11

al segundo 111

al tercer 1111

Lo mismo con


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

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:


id=(id*1)+1;

o de la de caballeros:


id=parseInt(id)+1;

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

Saludos

You can leave a response, or trackback from your own site.

Leave a Reply