javascript中a + 1和a - 1 +2之间的区别是什么?

My *_*ear -1 javascript operators

我有一个项目,发现非常神秘.
我发现a - 1 + 2在javascript代码中,我认为它将a + 1与它相同并替换它.但这是错误的答案.什么时候

a = 1 => a -1 +2 = 2
      => a + 1 = 11
Run Code Online (Sandbox Code Playgroud)

任何人都可以描述这个问题吗?

Li3*_*357 6

a是一个字符串.因为+可以表示加法或字符串连接,这就是你在这里看到的.在JavaScript中,如果您至少有一个字符串的加数,则两个操作数都被强制转换为字符串并连接."1" + 1就是这样"11".但在JavaScript中, - 只有一个含义,减法.因此,它将两个操作数转换为数字和减法.减法不会发生连接,因此存在差异.

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

+a + 1
Run Code Online (Sandbox Code Playgroud)

这里,一元+隐式转换a为数字.