Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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,我在某处看到了一个类似的问题,并在dev控制台上进行了尝试 那么代码执行的顺序是什么呢 我以为会是5 ie1+2+2 1+3+3就是我认为发生的事情 下面的序列是如何由javascript编译器执行的,你可以查看它的细节,但本质上是,i++将计算为1,然后递增,所以我将为2,然后++我将首先递增,所以将计算为3,然后i是3,所以得到1+3+3,因为在添加之前,会先进行预修复和后修复增量。的规则定义得很好。在表达式中使用的三个运算符中,后缀增量的优先级最高: 优先|运算符|语法 17 |后缀增量|

我在某处看到了一个类似的问题,并在dev控制台上进行了尝试

那么代码执行的顺序是什么呢 我以为会是5 ie
1+2+2

1+3+3
就是我认为发生的事情


下面的序列是如何由javascript编译器执行的,你可以查看它的细节,但本质上是,i++将计算为1,然后递增,所以我将为2,然后++我将首先递增,所以将计算为3,然后i是3,所以得到1+3+3,因为在添加之前,会先进行预修复和后修复增量。

的规则定义得很好。在表达式中使用的三个运算符中,后缀增量的优先级最高:

优先|运算符|语法
17 |后缀增量|++
16 |前缀增量|++…
13 |加法|…+…
因此,按照顺序,步骤如下:

var i = 1;
undefined
console.log(i++ + ++i + i)
VM71:1 7
undefined

它是从左到右计算的:

((i++) + (++i)) + i // i === 1
( 1    + (++i)) + i // i === 2, postfix increment
( 1    +    3 ) + i // i === 3, prefix increment
4               + 3 // i === 3, addition
7                   // i === 3, addition
  • i++
    计算为1,
    i
    递增
  • 然后,
    ++i
    被计算为3,
    i
    被递增
  • 然后,
    i
    被计算为3

优先级决定操作数与运算符的分组,而不是计算顺序。例如,
i+i+++i
在添加之前不会增加
i

i+++++i+i
->
1+3+3
你能解释一下这个问题吗?我想确定它是否是这样执行的。我正在阅读操作符优先级手册来确认它,有点困惑
(i++ + ++i + i)