最初にコードを見てみましょう
function show(){alert(abc); } var abc = "defg";見せる();C ++またはJavaプログラミングの経験がある人は、「このプログラムは死んでおり、変数は変数を参照する関数の後に定義されます。バグはあなたを破壊します。」ブラウザで実行した場合、どうなりますか?完璧に走る!次に、何が起こっているのか、VARとVARの定義なしの変数の違いについて話しましょう。
1。var
簡単に言えば、変数を定義するときにVARを省略することは安全ではありませんが、合法です。現時点では、変数がどこに定義されていても、通訳者は変数グローバルスコープを割り当てます。
2。var
安全で合法。定義された変数の範囲は、定義された場所の位置に依存します。スコープとは何かについては、このブログの記事「JavaScript Scope」を参照してください。
このようにして、最初の問題は解決できます。関数におけるABCの定義は、未定義の値にすぎません。現時点では、ABCにはグローバルな範囲があり、関数の外側はABCの値の更新のみです。