0

我已经在 for 语句中或之前看到了这两个变量声明。哪个更好?这是一个示例片段。

MC.initAll = function() {
    var iterate = [MC, Su], 
        l = iterate.length, 
        i, 
        key;
    for( i = 0; i < l; i++ ) {
        for( key in iterate[i]) {
            if( iterate[i].hasOwnProperty(key) && iterate[i][key].hasOwnProperty("init") ) {
                iterate[i][key].init();
            }
        }
    }
}

将函数放在 for 语句之外的优点:

  • 由于使用相同的 var 语句,代码更少
  • 已经吊起来了,js就不用了
  • 内部工作更加明确
  • 将通过 jshint.com

放入 for 语句的优点

  • 简单的目视检查以验证声明发生在函数中
4

2 回答 2

3

这是个人风格。哪个“更好”纯粹是见仁见智。无论var语句出现在何处,javascript 解释器都会将所有变量定义提升到变量块的开头。

我个人喜欢将我的 var 放在for循环中,这样就不会意外忘记并使用隐式全局变量,但这只是个人风格选择。我知道其他人喜欢在函数开始时显式声明的所有变量。

于 2012-08-07T19:17:10.557 回答
1

我在 for 循环中声明我的变量之前

var i, j; 
for (i = 0, j = x.length; i < j; i = i+1){
     the loop ... 
}

这样我只在我的代码中声明我的计数器 1 次并随意重置它。如果我需要保留计数器值,我声明另一个值,我将我的计数器值

于 2012-08-07T19:39:07.730 回答