通过前缀和后缀运算符增加数字

时间:2015-09-26 09:53:17

标签: javascript compiler-errors operators postfix-operator prefix-operator

我错误地写道:

++number++;

得到了这个:

Uncaught ReferenceError: Invalid left-hand side expression in prefix operation

为什么呢?除了这个之外,我首先将number递增1,然后再将number递增一次。

1 个答案:

答案 0 :(得分:6)

在JavaScript中,++既是前缀又是 postfix 增量运算符。 postfix 运算符具有更高的优先级,因此当我们应用优先级时,您的表达式变为:

++(number++);

number++的结果是一个值,而不是一个变量引用,因此它不能是前缀增量运算符的操作数,因为++42无效的原因相同 - 没有地方可以写结果回到了。

为什么在操作员的时将其称为“左侧表达式”?您必须查看V8源代码(我可以从V8上的错误文本中看出,可能是Chrome)。我可以推测这是因为许多运算符接受两个操作数(左和右),并且它们默认只调用++“左手”这样的一元运算符的唯一操作数。但这是猜测。