0

私はよく次のような習慣を目にします。

var foo, bar;
for(var i = 0; i < 5; i++) {
    foo = '' + foo + i;
}

それは私にもこすりつけられましたが、なぜ私がそれをするのか分からないことに気づきました.

4

1 に答える 1

3

それを行うことに実際の問題はありませんが、javascript にはブロック レベルのスコープがないため、ループ内で foo を宣言すると、関数全体で引き続きアクセスできます。

すべての変数を前もって宣言すると、縮小を行うときに小さな利点があります。次の点を考慮してください。

// Up front
var a, b, c, aVal, bVal, cVal;

for (a = 0; a < 5; ++a) {
    aVal = a;
}

for (b = 0; b < 5; ++b) {
    bVal = b;
}

for (c = 0; c < 5; ++c) {
    cVal = c;
}

// Inline
for (var a = 0; a < 5; ++a) {
    var aVal = a;
}

for (var b = 0; b < 5; ++b) {
    var bVal = b;
}

for (var c = 0; c < 5; ++c) {
    var cVal = c;
}

この場合、縮小すると、ソースに表示される「var」ステートメントがさらに多くなります。大したことではありませんが、時間の経過とともに確実に増加する可能性があります.

于 2012-11-10T01:39:41.487 に答える