【问题标题】:declaring for-loop variable best practice声明 for 循环变量的最佳实践
【发布时间】:2018-03-01 15:48:31
【问题描述】:

我的问题更多是关于 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


【解决方案1】:

您可能会像这样预先获取长度有两个原因:

  1. 如果长度可能发生变化(请记住,JavaScript 数组 aren't really arrays* 并且它们的长度不是固定的) 并且您想使用 原始 长度限制循环,或

  2. 为了避免重复查找对象的长度,因为您知道它不会改变

第一个显然是实质性的;第二个是样式和/或微优化。


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

【讨论】:

  • 对于 Java 背景的 Javascript 来说还是比较新的。我从来没有考虑过你的第一点。你的意思是在我的 forloop 中间,我或其他东西可以改变 array.length 并且我会无意中增加我的 for 循环长度?
  • 刚刚测试了我的假设。看起来确实如此!我习惯了数组长度不变的Java。感谢您的洞察力!
【解决方案2】:

对于第一种样式,declaredEarlier 的值可以更改,因此您需要使用它 像这样length=declaredEarlier.length

但是对于第二种样式,您已经知道了不需要再次计算的值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2018-09-23
    • 2012-09-20
    • 1970-01-01
    相关资源
    最近更新 更多