スコープは、アクセス権を持つ一連の変数です。
JavaScript では、オブジェクトも関数も変数です。
JavaScript でのスコープは、アクセス可能な変数、オブジェクト、関数の集合です。
JavaScript には関数スコープがあります。スコープは関数内で変更されます。
JavaScript 関数内で宣言した変数は、その関数の ローカル 変数になります。
ローカル変数は、その関数内でのみアクセス可能なローカルスコープを持ちます。
// code here can not use carName
function myFunction() {
var carName = "Volvo";
// code here can use carName
}
Try it Yourself »
ローカル変数は、関数内でのみ認識されるので、同じ名前の変数を別な関数で使用することができます。
ローカル変数は、関数の開始時に作成され、関数が完了すると削除されます。
関数の外で宣言した変数は、グローバルになります。
グローバル変数にはグローバルスコープがあり、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" では、グローバル変数の作成は自動的に失敗します。
JavaScript でのグローバルスコープは、完全な JavaScript 環境です。
HTML でのグローバルスコープは、ウィンドウオブジェクトです。すべてのグローバル変数はウィンドウオブジェクトに属します。
グローバル変数(または関数)は、ウィンドウ変数(または関数)を上書きできます。
ウィンドウオブジェクトを含むどの関数も、グローバル変数と関数を上書きすることができます。
JavaScript 変数の存続期間は、変数の宣言時に有効になります。
ローカル変数は、関数が完了すると削除されます。
グローバル変数は、ページを閉じると削除されます。
関数の引数(パラメータ)は、関数内のローカル変数として機能します。