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