声明for循环变量最佳实践

问题描述 投票:2回答:2

我的问题更多是关于for循环风格的好奇心问题。在阅读其他人的旧代码时,我遇到了一种我以前从未见过的风格。

var declaredEarlier = Array
for(var i=0, length=declaredEarlier.length; i < length; i++) {
    //stuff
}

我从来没有见过在使用之前声明一个长度,因为这是一个旧的应用程序,这种风格是C / C ++ /旧的Java结转?或者这个开发者是独特的?以这种方式声明长度而不是做我通常做的事情有什么好处:

for(var i=0; i < declaredEarlier.length; i++) {
    //stuff
}

如果以前曾经问过,我找不到它。如果它不适用stackoverflow,哪个论坛会更好问?

javascript coding-style
2个回答
3
投票

有两个原因你可以像前面那样抓住前面的长度:

  1. 如果长度可能会改变(请记住,JavaScript数组aren't really arrays *及其长度不固定)并且您希望使用原始长度来限制循环,或者
  2. 为了避免反复查找对象的长度,因为你知道它不会改变

第一个显然是实质性的;第二种是风格和/或微观优化。


*披露:这是我贫穷的小博客上的帖子的链接。


1
投票

对于第一种风格,declaredEarlier的价值可以改变所以你需要像length=declaredEarlier.length一样使用它

但对于第二种风格,你已经知道了你不需要再次计算它的价值

© www.soinside.com 2019 - 2024. All rights reserved.