一尘不染

为什么JavaScript在字符串和数字之间对加号和减号运算符的处理方式不同?

javascript

我不明白为什么JavaScript会这样工作。

console.log("1" + 1);
console.log("1" - 1);

第一行打印11,第二行打印0。为什么JavaScript将第一行作为字符串处理而第二行作为数字处理?


阅读 433

收藏
2020-04-25

共1个答案

一尘不染

字符串串联完成后,+Javascript会将第一个数字1转换为字符串,并将“ 1”和“ 1”串联为“ 11”。

您无法对字符串执行减法运算,因此Javascript将第二个“ 1”转换为数字,并从1中减去1,从而得出零。

2020-04-25