声明 for 循环变量的最佳实践
declaring for-loop variable best practice
我的问题更像是一个关于 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
}
如果以前有人问过这个,我找不到了。还有如果Whosebug不适用,问哪个论坛比较好?
有两个原因可以让您像这样抓住长度 up-front:
万一长度可能改变(记住,JavaScript数组aren't really arrays*并且它们的长度不固定)并且你想用原来的长度限制循环,或者
避免重复查找对象的长度,因为您知道它不会改变
第一个显然是实质性的;第二个是样式 and/or micro-optimisation.
* 披露:这是我贫血的小博客上的 link 到 post。
对于第一种样式,declaredEarlier
的值可以更改,因此您需要使用它
像这样 length=declaredEarlier.length
但是对于第二种样式你已经知道了你不需要再次计算的值
我的问题更像是一个关于 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
}
如果以前有人问过这个,我找不到了。还有如果Whosebug不适用,问哪个论坛比较好?
有两个原因可以让您像这样抓住长度 up-front:
万一长度可能改变(记住,JavaScript数组aren't really arrays*并且它们的长度不固定)并且你想用原来的长度限制循环,或者
避免重复查找对象的长度,因为您知道它不会改变
第一个显然是实质性的;第二个是样式 and/or micro-optimisation.
* 披露:这是我贫血的小博客上的 link 到 post。
对于第一种样式,declaredEarlier
的值可以更改,因此您需要使用它
像这样 length=declaredEarlier.length
但是对于第二种样式你已经知道了你不需要再次计算的值