私のテストは、タイトルが確かに正しいことを示唆しています。でも、思いもよらない微妙なニュアンスがあるかどうかはわかりません。参照:forループまたはifブロック内で変数を宣言することに何か問題がありますか?
1 に答える
2
それらが同じスコープ内にある場合、テストは正しいです。同じスコープで同じ変数を再宣言しても、何も起こりません。
ただし、それらが同じスコープ内にない場合は、ローカルスコープで変数を再宣言すると、そのスコープ内の元の変数をオーバーライドする新しい変数が作成されます。
したがって、これは正常に機能します。
var value = "foo";
var value;
console.log(value); // "foo"
ただし、これにより、グローバルに定義された変数の値を持たない新しい変数がローカルスコープに作成されます。
var value = "foo";
function test() {
var value; // this creates a new variable that is separate
// from the globally declared one with the same name
console.log(value); // undefined
}
test();
于 2012-11-10T01:54:41.103 に答える