是
for (var i=0, cols=columns.length; i<cols; i++) { ... }
Run Code Online (Sandbox Code Playgroud)
效率更高
for (var i=0; i<columns.length; i++) { ... }
Run Code Online (Sandbox Code Playgroud)
?
在第二个变体中,columns.length每次i<columns.length检查条件时都会计算出来?
每个循环将评估for的第二部分中的任何表达式.
所以,在这里,你的第二个命题,是的,columns.length每次检查条件时都会计算 - 这将使第一个命题比第二个命题更快.
(对许多其他语言都是如此,顺便说一下)
像这样的微优化在Javascript之类的语言中没有多大意义,除非你已经测试并发现循环性能是一个问题.
但是,必须在每次迭代时计算columns.length,因为在循环迭代期间列数可能会更改.因此,存储循环限制可能会提供稍好的性能(但请参阅我的第一点).
| 归档时间: |
|
| 查看次数: |
3357 次 |
| 最近记录: |