如何阻止javascript从字符串变量解释我的数字变量?
var a = 100;
var b = -10
var c = a + b // 10-10 (string)
让我说我总是想要
var c = a + b = 100+(-10) = 90 (number)
答案 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
等