错误地,我写道:
++number++;
得到了这个:
Uncaught ReferenceError: Invalid left-hand side expression in prefix operation
为什么?除了这个,我会先增加number
一,然后再增加number
一。
错误地,我写道:
++number++;
得到了这个:
Uncaught ReferenceError: Invalid left-hand side expression in prefix operation
为什么?除了这个,我会先增加number
一,然后再增加number
一。
在 JavaScript 中,++
既是前缀又是后缀自增运算符。后缀运算符具有更高的优先级,因此当我们应用优先级时,您的表达式变为:
++(number++);
的结果number++
是一个值,而不是变量引用,因此它不能是前缀自增运算符的操作数,同样的原因++42
是无效的——结果无处可写。
当它在运算符的右侧时,为什么将其称为“左侧表达式” ?您必须查看 V8 源代码(我可以从错误文本中看出您在 V8 上执行此操作,可能是 Chrome)。我可以推测这是因为许多运算符接受两个操作数(左和右),并且默认情况下它们只是将唯一的操作数调用给一元运算符,如++
“左手”。但那是猜测。