JavaScriptの関数定義には機能があり、最初に関数本体ステートメント全体をスキャンし、すべての宣言された変数を関数の上部に「アップグレード」します。
'Strict'を使用します; function foo(){var x = 'hello、' + y;アラート(x); var y = 'bob';} foo();それは厳格なモードですが、ステートメントvar x = 'hello' + y;変数yが後で宣言されるため、エラーを報告しません。しかし、アラートは、変数yの値が定義されていないことを示している、未定義の挨拶を示しています。これは、JavaScriptエンジンが変数Yの宣言を自動的に改善するが、変数Yの割り当てを増加させないためです。
上記のfoo()関数の場合、JavaScriptエンジンで見られるコードは以下と同等です。
function foo(){var y; //変数の上昇の宣言y var x = 'hello、' + y;アラート(x); y = 'bob';}JavaScriptのこの奇妙な「特徴」のため、関数内の変数を定義するとき、「関数内で最初にすべての変数を宣言する」というルールを厳密に順守してください。最も一般的な方法は、VARを使用して、関数で内部で使用されるすべての変数を宣言することです。
function foo(){var x = 1、// xは1 y = x + 1に初期化されます、// yは2 zに初期化されます。 // zと私は未定義です//他のステートメント:for(i = 0; i <100; i ++){...}}JS変数の詳細な理解の改善に関する上記の記事は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。