JavaScriptにはローカル変数とグローバル変数の2種類の変数があります。
まず第一に、ローカル変数は、この変数が宣言されている関数内でのみ呼び出すことができます。グローバル変数は、コード全体で呼び出すことができる変数です。もちろん、それを文字通りに理解するのは決して明確ではありません。以下に詳しく紹介します。
変数は var キーワードで宣言する必要があることは誰もが知っています。ただし、変数は JavaScript で暗黙的に使用することもできます。つまり、変数を宣言せずに直接使用することもできます。さらに、JavaScript は常に暗黙的に宣言された変数をグローバル変数として使用することに注意してください。
例:
function myName() { i = 'yuanjianhang'; } myName(); function sayName() { alert(i); } sayName();
出力結果は次のとおりです:yuanjianhang
上記のコードを次のように変更すると、変数 i がグローバル変数であることがわかります:
function myName() { var i='yuanjianhang'; } myName(); function sayName() { alert(i); } sayName();
この時点では、ブラウザーには何も出力されません。これは関数 myName で定義されているため、myName のローカル変数にすぎず、外部から呼び出すことはできません。
ここで次のコードを見てください:
function myName() { i = 'yuanjianhang'; } myName(); function sayName() { alert(i); } sayName();
次に、いくつかの変更を加えて myName(); を削除しましょう。コードは次のとおりです:
function myName() { i = 'yuanjianhang'; } function sayName() { alert(i); } sayName();
この時点では、ブラウザは応答しません。 i はグローバル変数ですが、関数 myName() は呼び出されていないため、i を宣言しても i に値を代入しないことと同等であるため、出力はありません。
同様に、上記の例を次のように変更すると、
function myName() { i = 'yuanjianhang'; } function sayName() { alert(i); } sayName(); myName();
この場合、JavaScript コードは上から下に実行され、sayName() 関数が呼び出されるときに、変数 i がチェックされます。この時点では、関数 myName は実行されていないため、i には値が割り当てられていないため、結果は出力されません。
JavaScript のスコープを分割する基準は、if、while、for ではなく、function 関数ブロックです。
JavaScript は実行前にスクリプト ファイル全体をプリコンパイルします (ローカル変数部分を含むスクリプト ファイルの宣言部分を分析します)。実変数のスコープを決定します。たとえば、以下のようになります。
グローバル変数がローカル変数と同じ名前の場合、ローカル変数のスコープがグローバル変数のスコープを上書きします。ローカル変数のスコープを抜けた後、元の変数に戻ります。グローバル変数のスコープwindow.globalVariableName を使用します。
りー以上がJavaScript でローカル変数とグローバル変数を使用する方法とその違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。