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

Increment a number by prefix and postfix operator

我写错了:

++number++;

得到这个:

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

为什么?我希望首先将 number 递增 1,然后再将 number 递增 1。

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

++(number++);

number++的结果是一个值,不是变量引用,所以它不能作为前缀递增运算符的操作数,同样的原因++42是无效的——没有地方可以将结果写回。


为什么在运算符右边的地方叫"left-hand side expression"?您必须查看 V8 源代码(我可以从您在 V8 上执行此操作的错误文本中看出,可能 Chrome)。我可以 推测 这是因为许多运算符接受两个操作数(左和右),并且它们只是将唯一的操作数调用给一元运算符,例如 ++ "left-hand"默认。但那是猜测。