私が知る限り、関数内で宣言された変数はローカル変数です(var
キーワードを使用しているかどうか)。 もしそうなら、なぜこの出力は5
でしょうか? x
がfunc1
にしか知られていないので、func2
を呼び出すときにReferenceError
を取得してはいけませんか?関数内でのグローバル変数の作成 - これはなぜ機能するのですか?
<script>
function func1(){
x = 5;
}
function func2(){
document.write(x);
}
func1();
func2();
</script>
_ "関数の内部で宣言された変数" _、あなたがdidntは:strictモードで
は、あなたのコードはエラーを生成します'let'や' var'を使わなかったからです。 –
変数は 'val'で宣言するとローカルです。それ以外の場合はグローバルです。 –
[JavaScript Scope](https://toddmotto.com/everything-you-wanted-to-know-about-javascript-scope/)を参照してください。 –