我有一个项目,发现非常神秘的一个
我在javascript代码中找到a - 1 + 2
,我认为它与a + 1
相同,并替换为它。
但这是错误的答案。
什么时候
a = 1 => a -1 +2 = 2
=> a + 1 = 11
有人可以描述这个问题吗?
答案 0 :(得分:6)
a
是一个字符串。因为+可以表示添加或字符串连接,这就是您在此处看到的内容。在JavaScript中,如果您至少有一个字符串的加数,则两个操作数都被强制转换为字符串并连接。因此"1" + 1
是"11"
。但在JavaScript中, - 只有一个含义,减法。因此,它将两个操作数转换为数字和减法。减法不会发生连接,因此存在差异。
在添加:
之前,只需将a
强制转换为整数
+a + 1
此处,一元+
隐式将a
转换为数字。