var var1;
    var var2;

    var1 = readCookie('cookie_name');

    var2 = +var1 + 1;

    alert(var1);
    alert(var2);

Por encima de fragmento de JS me tiene desconcertado. A menos que codifique la rareza alternativa de '+ var1', el resultado es '11' no 2 (suponiendo que var1 = 1 y var2 = 1). Entonces parece que estoy obteniendo algún tipo de concatenación en lugar de adición. Mi único pensamiento es que esto debe tener algo que ver con el hecho de que var1 es un valor importado de una cookie. O es un error en JS. O me estoy volviendo loco. Elige tu opción.

0
Poppy 10 may. 2016 a las 06:57

6 respuestas

La mejor respuesta

Adivinar readCookie('cookie_name') está devolviendo un String. Tratar:

var1 = parseInt(readCookie('cookie_name'));

Para obtener var1 como int pero puede intentar lo siguiente para limpiar las cosas.

var var1 = parseInt(readCookie('cookie_name'));
var var2 = var1 + 1;

alert(var1); // should be the value of the cookie or 0
alert(var2);

Editar: cambios realizados en función de la pregunta editada. Tiene más sentido ahora también:]

0
Tigger 15 may. 2016 a las 10:53

Solo marque es un número o no. si es número, entonces cámbielo a Número, pasándolo a la función de número.

var var1;
var var2;

var1 = readCookie('cookie_name');

var1 = var1.isNaN()?var1:Number(var1); 

var2 = var1 + 1; //instead of your Code (+var1 + 1)
alert(var1);
alert(var2);
0
Zigri2612 10 may. 2016 a las 11:32

+var2 realiza una conversión de número. (+) operador antes de que la variable haga el truco. Entonces, +var1+1 será 2. De lo contrario, esto

var1 = readCookie('cookie_name');

Es probablemente una cadena de valor 1 y al agregar la cadena y el número resultará en 11

0
brk 10 may. 2016 a las 04:00

Simplemente intente analizar var2 a entero y su problema se resolverá.

Prueba esto.

Var1 = paresInt (+ var2) + 1;

-1
Raj Khot 10 may. 2016 a las 04:10

Si está seguro de que var1 contiene una expresión numérica, puede usar:

var2 = Number(var1) + 1;
alert(var2);
0
Mark Micallef 10 may. 2016 a las 04:25

A menos que necesite mantener la versión original de var1, y siempre que agregue una, considere la alternativa de hacerlo

var1++

Esto obligará al valor a un número y le agregará uno.

1
10 may. 2016 a las 06:43