javascript 中的 a + 1 和 a - 1 +2 有什么区别

What is the difference between a + 1 and a - 1 +2 in javascript

我拿到了一个项目,发现了一个很神秘的项目。
我在 javascript 代码中找到了 a - 1 + 2,我认为它将与 a + 1 相同并替换为它。 但它给出了错误的答案。 当

a = 1 => a -1 +2 = 2
      => a + 1 = 11

谁能描述一下这个问题?

a 是一个字符串。因为 + 可以表示加法 或字符串连接 ,这就是您在此处看到的内容。在 JavaScript 中,如果您至少有一个加数是字符串,则两个操作数都被强制转换为字符串并连接起来。因此 "1" + 1"11"。但是在JavaScript中,-只有一个意思,减法。因此它将两个操作数都转换为数字并相减。减法没有连接,因此有所不同。

在添加之前将 a 强制转换为整数:

+a + 1

在这里,一元 + 隐式地将 a 转换为数字。