English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
変数のスコープは、その中で定義されたプログラムの領域です。
JavaScriptの変数にはスコープが2つあります:
ローカルスコープ
グローバルスコープ
スコープは変数の可視性(アクセス可能さ)を決定します。
関数で宣言された変数はLOCAL(ローカル)スコープ、これは関数外部から呼び出したり操作したりできないことを意味します。
// ここのコードはcityNameを使用できません function myFunc() { var cityName = "New Delhi"; // ここのコードはcityNameを使用できます } // ここのコードはcityNameを使用できませんテストしてみて‹/›
ローカル変数は関数スコープを持っており、関数内からのみアクセスできます。
ローカル変数は関数内でのみ認識されるため、同じ名前の変数が異なる関数で使用できます。
関数が開始されるとローカル変数が作成され、関数が完了するとローカル変数が削除されます。
関数外部で宣言された変数はGLOBAL範囲、これはすべてのスクリプトが使用できることを意味し、関数内か外部に関わらずです。
// グローバル変数を初期化します var cityName = "New Delhi"; // ここのコードはcityNameを使用できます function myFunc() { // ここのコードもcityNameを使用できます } // ここのコードはcityNameを使用できますテストしてみて‹/›
JavaScriptプログラムのどこからでもアクセスできるグローバル変数です。
以下の例では、GLOBALを作成します cityName変数。関数内には同じ名前のLOCAL変数があります。
// グローバル変数を初期化します var cityName = "New Delhi"; function myFunc() { //ローカル、関数範囲内の変数を初期化します var cityName = "Jaipur"; document.writeln(cityName); } //グローバル変数とローカル変数を出力します document.writeln(cityName); myFunc(); document.writeln(cityName);テストしてみて‹/›
それらをドキュメントに输出することで、変数の値はスコープに応じて異なり、元の値は変更されません。
未宣言の変数に値を割り当てると、自動的にGLOBAL(グローバル)変数。
この例では、グローバル変数を宣言しますcityName、函数内で値が割り当てられていても同様です。
myFunc(); // ここのコードはcityNameを使用できます function myFunc() { cityName = "New Delhi"; }テストしてみて‹/›
必要がない場合は、簡単にグローバル変数を作成しないでください。
グローバル変数はウィンドウ変数を覆盖できます。
すべてのファンクション、包括的にwindowオブジェクトも、GLOBAL変数をオーバーライドできます。
JavaScriptには変数を宣言するために3つの異なるキーワードがあります。これにより、言語に複雑さが加わります。
違いは範囲、昇格、再割り当てに基づいています。
キーワード | 範囲 | 昇格 | 再割り当てできます | 再宣言できます |
---|---|---|---|---|
var | ファンクション範囲 | はい | はい | はい |
let | ブロック範囲 | いいえ | はい | いいえ |
const | ブロック範囲 | いいえ | いいえ | いいえ |
用varキーワードで宣言された変数はブロック範囲を持つことができません。
{}はブロック内部で宣言された変数をブロック外部からアクセスできます:
{ var num = 50; } // numはここでは使用できます
用letキーワードで宣言された変数は「ブロック範囲」を持つことができます。
{}内で宣言された変数はブロック外部からアクセスできません:
{ let num = 50; } // numはここでは使用できません
変数を宣言するwith constとletブロック範囲に似ています。
{ const num = 50; } // numはここでは使用できません
定数の値は再割り当てできず、再宣言もできません。
JavaScript 変数のライフサイクルは宣言から始まります。
ファンクションが完了すると、削除されますローカル変数。
ブラウザウィンドウを閉じると、グローバル変数は削除されますが、同じウィンドウに読み込まれた新しいページではまだ使用できます。