当我们用数字(类型为字符串)减去/乘/除数字时,它会将两个变量都视为数字。
但是当我们添加一个带数字的数字(类型为字符串)时,它会将第二个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中添加了不同的行为?
答案 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被隐式强制转换为数字,所以数学运算。