为什么不将变量声明为函数的参数?

时间:2016-11-22 16:27:00

标签: javascript variable-declaration

我没有看到任何速记技术或stackOverflow问题..然后我想知道以下是否可以是速记技术。

想象一下,我有一个函数,我知道有一个参数将被传递给它:

function myFunc(arr) {
  var i;
  for(i = 0; i < arr.length; i++ ) {
    if(arr[i] === 3) {return true;}
  }
}

在这种情况下写一个好习惯:

function myFunc(arr, i) {
  for(i = 0; i < arr.length; i++ ) {
    if(arr[i] === 3) {return true;}
  }
}

我知道在大多数情况下我们只保存4个字节,这代表了一个非常小的改进,但有时候对于一个简短的函数来说,它可以更具可读性,而不会浪费1/2行来声明变量。

编辑:我也想在函数范围内声明我而不是for循环sinc我希望能够重用它。

1 个答案:

答案 0 :(得分:1)

如果您要在i循环中实际使用for,则只会执行此操作。

e.g:

function myFunc(arr, i) {
    for(i; i < arr.length; i++ ) {
        arr[i];
    }
}

// Why you would do this though, is another matter (and bizarre)
myFunc(anArray, 9); 

相反,最好这样做:

function myFunc(arr) {
    for(var i = 0; i < arr.length; i++ ) {
        arr[i];
    }
}

并且不用担心4个字节...