ホームページ >ウェブフロントエンド >jsチュートリアル >グローバル JavaScript 変数が関数内で定義されていないのはなぜですか?
JavaScript 変数のホイスト: 未定義のグローバル変数の謎を明らかにする
JavaScript 変数を扱うとき、予期せぬ動作が発生することがよくあります。そのような例の 1 つは、グローバル変数が特定の範囲内で未定義の値を持っているように見える場合です。 function.
例:
var value = 10; function test() { console.log(value); // A var value = 20; console.log(value); // B } test();
出力:
undefined 20
説明:
この動作は JavaScript に起因します変数ホイスティング。変数と関数の宣言を現在のスコープの先頭に自動的に移動します。これは、次のことを意味します。
実際、コードは次のように記述されたかのように動作します。
var value; function test() { console.log(value); // undefined value = 20; console.log(value); // 20 }
補足:関数宣言もホイスティングされます。これが、変数の代入とは異なり、関数を宣言する前に関数を呼び出すことができる理由です。
結論:
JavaScript 変数を扱うときは、変数の巻き上げを考慮する必要があります。この動作を理解することで、開発者はコード内の予期しない未定義の値を回避できます。さらに、Ben Cherry の「JavaScript Scoping and Hoisting」などのリソースは、JavaScript のこの基本的な側面についてさらに詳しい洞察を提供します。
以上がグローバル JavaScript 変数が関数内で定義されていないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。