ホームページ > 記事 > ウェブフロントエンド > JavaScriptのスコープの詳しい説明
JavaScript スコープ
JavaScript では、オブジェクトと関数も変数です。 JavaScript では、スコープはアクセス可能な変数、オブジェクト、関数のコレクションです。 JavaScript 関数のスコープ: スコープは関数内で変更されます。JavaScript ローカル スコープ
変数は関数内で宣言され、変数はローカル スコープです。 ローカル変数: 関数内でのみアクセスできます。// 此处不能调用 carName 变量 function myFunction() { var carName = "Volvo"; // 函数内可调用 carName 变量 }ローカル変数は関数内でのみ機能するため、異なる関数で同じ名前の変数を使用できます。 ローカル変数は関数の実行開始時に作成され、関数の実行後に自動的に破棄されます。
JavaScript グローバル変数
関数の外部で定義された変数はグローバル変数です。 グローバル変数にはグローバル スコープがあり、Web ページ内のすべてのスクリプトと関数を使用できます。var carName = " Volvo"; // 此处可调用 carName 变量 function myFunction() { // 函数内可调用 carName 变量 }変数が関数内で (var キーワードを使用せずに) 宣言されていない場合、その変数はグローバル変数です。 次の例では、carName は関数内にありますが、グローバル変数です。
// 此处可调用 carName 变量 function myFunction() { carName = "Volvo"; // 此处可调用 carName 变量 }
JavaScript 変数のライフサイクル
JavaScript 変数のライフサイクルは、宣言時に初期化されます。 ローカル変数は関数の実行後に破棄されます。 グローバル変数は、ページを閉じた後に破棄されます。関数パラメータ
関数パラメータは関数内でのみ機能し、ローカル変数です。HTML のグローバル変数
//此处可使用 window.carName function myFunction() { carName = "Volvo"; }
ご存知ですか?
グローバル変数または関数は、ウィンドウ オブジェクトの変数または関数をオーバーライドできます。ウィンドウ オブジェクトを含むローカル変数は、グローバル変数や関数をオーバーライドできます。
補足
ES6
let の let キーワードを使用すると、スコープが以下に制限されることを宣言できます。ブロックレベルの変数、ステートメント、または式。 var キーワードとは異なり、宣言できる変数はグローバルまたは関数ブロック全体のみです。 let 構文:let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]];let で宣言された変数は、それが宣言されているブロックまたはサブブロックでのみ使用できます。これは var と似ています。 2 つの主な違いは、var で宣言された変数のスコープが、それを囲んでいる関数全体であることです。
let と
var の違いのコード例:
function varTest() { var x = 1; if (true) { var x = 2; // 同样的变量! console.log(x); // 2 } console.log(x); // 2 } function letTest() { let x = 1; if (true) { let x = 2; // 不同的变量 console.log(x); // 2 } console.log(x); // 1 }
関連学習の推奨事項:
以上がJavaScriptのスコープの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。