JavaScript スコープ

❮ 前章へ 次章へ ❯

スコープは、アクセス権を持つ一連の変数です。


JavaScript スコープ

JavaScript では、オブジェクトも関数も変数です。

JavaScript でのスコープは、アクセス可能な変数、オブジェクト、関数の集合です。

JavaScript には関数スコープがあります。スコープは関数内で変更されます。


ローカル JavaScript 変数

JavaScript 関数内で宣言した変数は、その関数の ローカル 変数になります。

ローカル変数は、その関数内でのみアクセス可能なローカルスコープを持ちます。

// code here can not use carName

function myFunction() {
    var carName = "Volvo";

    // code here can use carName

}
Try it Yourself »

ローカル変数は、関数内でのみ認識されるので、同じ名前の変数を別な関数で使用することができます。

ローカル変数は、関数の開始時に作成され、関数が完了すると削除されます。


グローバル JavaScript 変数

関数の外で宣言した変数は、グローバルになります。

グローバル変数にはグローバルスコープがあり、web ページ上のすべてのスクリプトと関数からアクセスが可能です。

var carName = " Volvo";

// code here can use carName

function myFunction() {

    // code here can use carName

}
Try it Yourself »

自動グローバル

宣言していない変数に値を代入すると、自動的に GLOBAL 変数になります。

次のコード例では、関数内で値を代入していても、グローバル変数 carName の宣言になります。

myFunction();

// code here can use carName

function myFunction() {
    carName = "Volvo";
}
Try it Yourself »

意図しない限り、グローバル変数は作成しないでください。

"Strict Mode" では、グローバル変数の作成は自動的に失敗します。


HTML のグローバル変数

JavaScript でのグローバルスコープは、完全な JavaScript 環境です。

HTML でのグローバルスコープは、ウィンドウオブジェクトです。すべてのグローバル変数はウィンドウオブジェクトに属します。

var carName = "Volvo";

// code here can use window.carName
 
Try it Yourself »

ご存知ですか?

グローバル変数(または関数)は、ウィンドウ変数(または関数)を上書きできます。
ウィンドウオブジェクトを含むどの関数も、グローバル変数と関数を上書きすることができます。


JavaScript 変数の存続期間

JavaScript 変数の存続期間は、変数の宣言時に有効になります。

ローカル変数は、関数が完了すると削除されます。

グローバル変数は、ページを閉じると削除されます。


関数の引数

関数の引数(パラメータ)は、関数内のローカル変数として機能します。


❮ 前章へ 次章へ ❯