var var1;
var var2;
var1 = readCookie('cookie_name');
var2 = +var1 + 1;
alert(var1);
alert(var2);
JS的上述片段令我感到困惑。除非我对“+ var1”的变通方法进行编码,否则结果为“11”而不是2(假设var1 = 1且var2 = 1)。所以我似乎得到某种连接而不是添加。我唯一的想法是,这必须与var1是从cookie导入的值这一事实有关。或者它是JS中的一个错误。或者我发疯了。随便挑选。
答案 0 :(得分:1)
除非您需要保留var1
的原始版本,并且只要您总是添加一个,请考虑替代方法
var1++
这会将值强制转换为数字,并为其添加一个。
答案 1 :(得分:0)
+var2
在变量执行操作之前执行数字转换。(+)
运算符。所以+var1+1
将为2.否则此
var1 = readCookie('cookie_name');
可能是一个值为1
的字符串,并且添加了字符串&号码将生成11
答案 2 :(得分:0)
猜测readCookie('cookie_name')
正在返回String
。尝试:
var1 = parseInt(readCookie('cookie_name'));
要将var1
作为int
,但您可能需要尝试以下方法进行清理。
var var1 = parseInt(readCookie('cookie_name'));
var var2 = var1 + 1;
alert(var1); // should be the value of the cookie or 0
alert(var2);
编辑:根据已修改的问题进行的更改。现在也更有意义:]
答案 3 :(得分:0)
如果您确定var1包含数字表达式,那么您可以使用:
var2 = Number(var1) + 1;
alert(var2);
答案 4 :(得分:0)
检查是否是一个数字。如果是数字,则将其更改为数字,方法是将其传递给数字函数。
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);
答案 5 :(得分:-1)
尝试将var2解析为整数,问题就会解决。
试试这个。
var1 = paresInt (+ var2)+ 1;