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

我在某处看到了类似的问题,并在开发控制台上进行了尝试。

因此,代码以什么顺序执行
我以为是5
1 + 2 + 21 + 3 + 3是我认为发生的事情。

那么javascript编译器如何执行以下序列

最佳答案

您可以查看operator precedence here的详细信息,但本质上发生的事情是i ++将求值为1,然后递增,所以我将为2,然后++ i首先将递增,因此求值为3,然后我为3,所以您得到1 + 3 + 3,因为之前和之后的固定增量是在添加之前完成的。

关于javascript - 代码以什么顺序执行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51643305/

10-10 01:21
查看更多