我正在努力理解Javascript增量运算符的行为,更具体地说,为什么某些情况会失败.
为什么在参数的两边添加增量运算符失败?
例:
let a = 1;
++a++;
Run Code Online (Sandbox Code Playgroud)
这会返回一个可怕的错误,指出:
ReferenceError: Invalid left-hand side expression in prefix operation
Run Code Online (Sandbox Code Playgroud)
这是什么意思,我应该担心吗?
增量运算符处理变量,而不是表达式.您不能递增数字表达式:
3++ // Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
Run Code Online (Sandbox Code Playgroud)
原因是它必须递增值,然后将其保存回变量.如果你给它任何旧的数字表达式,它会将结果分配给什么?
两个运算符中的一个将起作用,但它返回操作的结果,这是一个表达式,而不是变量:
++(a++)
Run Code Online (Sandbox Code Playgroud)
第一个运算符a++将递增a,并返回结果:2.然后第二个运算符尝试对值执行增量2,这是无效的语法.
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |