添加包含数字的javascript变量时如何防止链

时间:2011-11-25 12:41:18

标签: javascript string int

如何阻止javascript从字符串变量解释我的数字变量?

var a = 100;
var b = -10
var c = a + b // 10-10 (string)

让我说我总是想要

var c = a + b = 100+(-10) = 90 (number)

5 个答案:

答案 0 :(得分:3)

在你的例子中,c 总是是90,但是;

var a = 100;
var b = "-10";
var c = a + b // "100-10" (string)

防止将字符串转换为整数;

var c = a + parseInt(b, 10); 

或使用一元+

var c = a + +b; 

答案 1 :(得分:0)

您的代码示例...

var a = 100;
var b = -10
var c = a + b // 90 (number) 

...除非其中一个操作数是String,否则不会这样做。在您的示例中,两者都是Number

如果你的String内有数字,你可以使用parseInt()(如果是十进制的话,不要忘记传递10的基数)或者可能只是前缀String +Number强制转换为{{1}}。

答案 2 :(得分:0)

您的代码运行正常。请参阅here

答案 3 :(得分:0)

只要您添加的两个变量都是数字,JavaScript就会始终执行后者。

答案 4 :(得分:0)

如果您不确定变量是数字还是字符串,最简洁的方法是在+前加上:

var a = "100";
var b = "-10";
var c = +a + +b; // 90

这可以从+"123" === 123

开始