Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
参数两侧的JavaScript增量(+;+;)运算符?_Javascript - Fatal编程技术网

参数两侧的JavaScript增量(+;+;)运算符?

参数两侧的JavaScript增量(+;+;)运算符?,javascript,Javascript,我正在努力理解Javascript的增量操作符的行为,更具体地说,理解为什么某些情况会失败 为什么在参数的两侧添加递增运算符会失败 示例: let a = 1; ++a++; 这将返回一个可怕的错误,指出: ReferenceError: Invalid left-hand side expression in prefix operation 这意味着什么,我应该担心吗?代码可以重写为:++(a++),它将转换为++(1),然后是++1,这不是一个有效的表达式。增量运算符对变量而不是表达式

我正在努力理解Javascript的增量操作符的行为,更具体地说,理解为什么某些情况会失败

为什么在参数的两侧添加递增运算符会失败

示例:

let a = 1;
++a++;
这将返回一个可怕的错误,指出:

ReferenceError: Invalid left-hand side expression in prefix operation

这意味着什么,我应该担心吗?

代码可以重写为:
++(a++)
,它将转换为
++(1)
,然后是
++1
,这不是一个有效的表达式。

增量运算符对变量而不是表达式起作用。不能递增数值表达式:

3++ // Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
原因是它必须增加值,然后将其保存回变量。如果给它任何旧的数值表达式,它会将结果赋给什么

两个运算符中的一个可以工作,但它返回操作的结果,这是一个表达式,而不是一个变量:

++(a++)

第一个操作符
a++
将递增
a
,并返回结果:
2
。然后,第二个运算符尝试对值
2
执行增量运算,这是无效语法。

为什么要使用此运算符?您得到此错误是因为++a。正确的语法是a++。我不确定你想用++a实现什么。你能详细说明一下吗?我正在考虑一个案例,在这个案例中,这是必要的或有用的,接下来就是short@jonode
++a
非常完美。“如果在操作数之前使用带运算符的前缀(例如,++x),那么它将在递增后返回值。”免责声明:我并没有实际使用它,我只是想知道它为什么不起作用。您的答案比我的好,但我要补充一点,
a++
将首先执行(错误显示为“……在前缀操作中”),而不是“…后缀操作”)。谢谢@JuanTonina,我记不起操作符的优先级了