Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:for语句中的变量赋值| prefore或inside_Javascript - Fatal编程技术网

JavaScript:for语句中的变量赋值| prefore或inside

JavaScript:for语句中的变量赋值| prefore或inside,javascript,Javascript,我在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].hasOwnPrope

我在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();
            }
        }
    }
}
MC.initAll=function(){
var iterate=[MC,Su],
l=迭代长度,
我
钥匙
对于(i=0;i
将函数置于for语句之外的优点:

  • 由于使用相同的var语句,代码更少
  • 已吊装的js无需
  • 内部工作更加明确
  • 将通过jshint.com
加入for语句的优点

  • 易于目视检查,以验证功能中是否进行了声明

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


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

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


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

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

      var i, j; 
      for (i = 0, j = x.length; i < j; i = i+1){
           the loop ... 
      }
      
      vari,j;
      对于(i=0,j=x.length;i
      这样,我只需在代码中声明我的计数器1次,并随意重置它。
      如果我需要保留计数器值,我会声明另一个值,在将计数器值放入for循环之前声明变量

      var i, j; 
      for (i = 0, j = x.length; i < j; i = i+1){
           the loop ... 
      }
      
      vari,j;
      对于(i=0,j=x.length;i
      这样,我只需在代码中声明我的计数器1次,并随意重置它。
      如果我需要保留计数器值,我会在放置计数器值的位置声明另一个值

      你几乎拥有接近投票权,你应该知道这个问题不是建设性的。因为这是一个意见问题,没有真实的事实或参考答案,可能不适合这样做。你几乎拥有接近投票权,你应该知道这个问题不是建设性的。因为这是一个意见问题,没有真实的事实或参考答案,它可能不适合这样做。如果我认为我需要我的长度超过一次,你在外面声明它。。。我的回答更倾向于计数器,而不是j的长度。然而,我认为你不能用一种方法来适应很多情况。j的长度只执行一次,因为它只是循环声明部分。如果我发现我需要不止一次地使用我的长度,你可以在外部声明它。。。我的回答更倾向于计数器,而不是j的长度。然而,我认为你不能用一种方法来适应很多情况。并且j的长度只执行一次,因为它只是循环声明部分。