为什么“减号,空格,减号”评估为“加号”运算符?

时间:2015-07-23 20:51:57

标签: javascript

node -e 'console.log(- -1)' // prints 1 which makes sense

然而:

node -e 'console.log(1 - - 1)' // prints 2 which does not make sense to me

integer - - integer神奇地将“减号,空格,减号”转换为“加号”运算符。为什么呢?

更新:似乎我不够清楚。问题不是为什么double negative in mathematics will always evaluate to a positive,而是如何神奇地评估+运算符;这是两种不同的情况 - 使负数正为一,隐式调用+是另一回事。

5 个答案:

答案 0 :(得分:10)

有一个完美的意义,数学中的双重否定将总是评估为积极的

答案 1 :(得分:4)

您的-个字符之一是一元减号或负号。这使你的一个文字成为“负面的”。另一个是减法。

1 - - 1

与:

相同
1 - (-1)

虽然

- - 1

相同
0 - (-1)

答案 2 :(得分:1)

它将1 - - 1解释为1 - -1等于2。

答案 3 :(得分:0)

如果你考虑一下,“ - -1”等于“+1”,所以“1 - - 1”等于“1 + 1”,等于2。

答案 4 :(得分:0)

在数学foo[:key]中。如果我-- = +,我会1 - (-1)。减去负数与添加数字相同......