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

时间:2017-09-23 01:43:00

标签: javascript operators

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

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

有人可以描述这个问题吗?

1 个答案:

答案 0 :(得分:6)

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

在添加:

之前,只需将a强制转换为整数
+a + 1

此处,一元+隐式将a转换为数字。