3

重複の可能性:
javascript変数を再宣言する利点はありますか?

次のコードが未定義ではなく1を表示するのはなぜですか。

a = 1;
var a;
alert(a);
4

1 に答える 1

9

1)var変数を再宣言または削除しません

2)たとえそうだったとしても、コードは次のようにjavascriptホイストルールを使用して書き直されます*(変数または関数宣言は最も近い囲んでいる関数の先頭に移動されます)。

var a;
a = 1;
alert(a);

(*効果的に書き直されました。明確にするために、実行コンテキストの入力に関するRobGのコメントとリンクを参照してください)

于 2012-10-05T02:40:49.783 に答える