在循环中,是否在每次迭代中评估最终条件中的任何操作?

7os*_*oso 7 javascript for-loop

在以下代码中:

for (var i = 0; i < object.length; i++){  
    ....  
}  
Run Code Online (Sandbox Code Playgroud)

object.length每次迭代时都会对操作进行评估吗?
最有意义的是语言将对此进行一次评估并保存结果.但是,我正在阅读一些代码,其中有人在循环开始之前评估了操作,并将其存储在最终条件中使用的变量中.
不同的语言处理不同吗?Javascript的任何特定信息?

Mat*_*hen 8

这显然取决于语言.对于JavaScript,规范(ECMAScript§12.6.3)要求每次都要对它进行评估.作为优化,特定的JavaScript运行时可以跳过一个或多个长度调用,如果它可以证明结果不会改变.