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

個人的なスタイルです。どちらが「より良い」かは、純粋に意見の問題です。varjavascriptインタープリターは、ステートメントがどこに表示されていても、すべての変数定義を変数ブロックの先頭に引き上げます。

私は個人的に変数をループに入れるのが好きな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 に答える