Javascript 代码执行的顺序是什么
我在某处看到了一个类似的问题,并在dev控制台上进行了尝试 那么代码执行的顺序是什么呢 我以为会是5 ieJavascript 代码执行的顺序是什么,javascript,Javascript,我在某处看到了一个类似的问题,并在dev控制台上进行了尝试 那么代码执行的顺序是什么呢 我以为会是5 ie1+2+2 1+3+3就是我认为发生的事情 下面的序列是如何由javascript编译器执行的,你可以查看它的细节,但本质上是,i++将计算为1,然后递增,所以我将为2,然后++我将首先递增,所以将计算为3,然后i是3,所以得到1+3+3,因为在添加之前,会先进行预修复和后修复增量。的规则定义得很好。在表达式中使用的三个运算符中,后缀增量的优先级最高: 优先|运算符|语法 17 |后缀增量|
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
计算为1,i++
递增i
- 然后,
被计算为3,++i
被递增i
- 然后,
被计算为3i
优先级决定操作数与运算符的分组,而不是计算顺序。例如,
i+i+++i
在添加之前不会增加i
。i+++++i+i
->1+3+3
你能解释一下这个问题吗?我想确定它是否是这样执行的。我正在阅读操作符优先级手册来确认它,有点困惑
(i++ + ++i + i)