JavaScriptのスコープ
JavaScript のスコープ
JavaScript では、オブジェクトと関数も変数です。
JavaScript では、スコープはアクセス可能な変数、オブジェクト、関数のコレクションです。
JavaScript 関数のスコープ: スコープは関数内で変更されます。
JavaScriptでは、varで宣言された変数には実際にスコープがあります。
変数が関数本体内で宣言されている場合、変数のスコープは関数本体全体であり、関数本体の外から変数を参照することはできません:
'use strict';function foo() {
var x = 1;
x = x + 1;
}
x = x + 2; // ReferenceError! 変数 x は関数本体の外で参照できません
2 つの異なる関数が同じ変数を宣言している場合、その変数ははそれぞれの関数本体内にのみあります。つまり、異なる関数内の同じ名前の変数は互いに独立しており、相互に影響しません。
'use strict';function foo() {
var x = 1;
x = x + 1;
}function bar() {
var x = 'A';
x = x + 'B';
}
JavaScript ローカル スコープ
変数は関数内で宣言され、変数はローカル スコープになります。
ローカル変数: 関数内でのみアクセスできます。
// carName 変数はここでは呼び出すことができません
function myFunction() {
var carName = "Volvo";
// carName 変数は関数内で呼び出すことができます
}
注:
ローカル変数は関数内でのみ機能するため、異なる関数で同じ名前の変数を使用できます。
ローカル変数は関数の実行開始時に作成され、関数の実行後に自動的に破棄されます。
グローバルスコープ
関数内で定義されていない変数はグローバル スコープを持ちます。実際、JavaScript にはデフォルトでグローバル オブジェクト ウィンドウがあり、グローバル スコープ内の変数は実際にはウィンドウのプロパティにバインドされています:
'use strict';
var course = 'Learn JavaScript';
alert(course); // 'Learn JavaScript'
alert(window.course); // 'Learn JavaScript'
したがって、グローバル変数 course に直接アクセスすることは、window.course にアクセスすることとまったく同じです。 。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <p>全局变量在任何脚本和函数内均可访问。</p> <p id="demo"></p> <script> var carName = "Volvo"; myFunction(); function myFunction() { document.getElementById("demo").innerHTML = "这里是 " + carName; } </script> </body> </html>
JavaScript変数のライフサイクル
JavaScript変数のライフサイクルは宣言時に初期化されます。
ローカル変数は関数の実行後に破棄されます。
グローバル変数はページが閉じられると破棄されます。
関数パラメータ
関数パラメータは関数内でのみ機能し、ローカル変数です。