通过前缀和后缀运算符递增数字
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"默认。但那是猜测。
我写错了:
++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"默认。但那是猜测。