2

JavaScript スコープに関連する質問があります:-

var a = 10;
function show() {
   alert(a);
   var a = 20;
   alert(a);
}
show();
alert(a);

上記では、「未定義」として出力されます 20 10

最後の 2 つの出力は理解できましたが、なぜ最初のアラートで undefined なのか、結果を 10、20、10 と解釈しました。これはスクリプトであり、行ごとに実行されるため、最初のアラートが発生するとグローバルを処理し、10 でアラートを出します、しかし、この理論はすべて間違っています。

説明していただけませんか、実際の理論と、どこが間違っているのか

ありがとう

4

2 に答える 2