我的问题更多是关于for-loop风格的好奇心问题。 在阅读其他人的旧代码时,我遇到了一种我以前见过的风格。
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,哪个论坛会更好问?
答案 0 :(得分:3)
有两个原因可以像你那样预先掌握长度:
如果长度可能会发生变化(请记住,JavaScript数组aren't really arrays *及其长度不固定)并且您要使用原始限制循环的长度,或
为避免反复查找对象的长度,因为您知道它不会改变
第一个显然是实质性的;第二种是风格和/或微观优化。
*披露:这是我贫血小博客上帖子的链接。
答案 1 :(得分:1)
对于第一种样式,declaredEarlier
的值可以更改,因此您需要使用它
喜欢那个length=declaredEarlier.length
但是对于第二种风格,你已经知道了再次计算它所不需要的值