Javascript Arithmetics

时间:2017-11-13 07:36:31

标签: javascript

当我们用数字(类型为字符串)减去/乘/除数字时,它会将两个变量都视为数字。

但是当我们添加一个带数字的数字(类型为字符串)时,它会将第二个var视为字符串并将变量连接起来。

例如



var a = 4;
var b = "4";
var c;

c = a + b;
console.log(c)

c = a - b;
console.log(c)

c = a * b;
console.log(c)

c = a / b;
console.log(c)




  

结果输出

     

" 44"

     

0

     

16

     

1

为什么在javascript中添加了不同的行为?

3 个答案:

答案 0 :(得分:0)

因为" +"不仅是算术运算符,还有"字符串连接运算符"。

在你的第一个例子中,你连接2个字符串。

在您的其他示例中,字符串被强制转换为数字,然后执行算术运算。

有一些步骤可以防止这种情况发生:



var a = 4;
var b = "4";

c = +b + a // 8
console.log(c);
c = parseInt(b) + a // 8
console.log(c);
c = b*1 + a // 8
console.log(c);




当您将两个变量一起添加时,您必须确保两个变量都具有类型编号。

答案 1 :(得分:0)

这是因为+运算符也用于字符串连接。您可以使用要转换为数字的+运算符

var a = 4;
var b = "4";
console.log(a + b);
console.log(a + +b);

答案 2 :(得分:0)

在JavaScript中+同时作为ADD和字符串连接运行。执行a + b时,a会被隐式强制转换为字符串。而其他运营商不能用于字符串。因此a被隐式强制转换为数字,所以数学运算。