スコープとは
スコープとは変数がどの場所まで有効で参照可能であるかを定義したものです。JavaScriptではスコープに応じてグローバルスコープとローカルスコープの2種類に分類できます。
グローバルスコープで定義された変数(グローバル変数)はその名の通りスクリプトの全体から参照可能です。これに対して、ローカルスコープ(関数内)で定義された変数(ローカル変数)は関数内でのみ参照可能です。
以下の例ではスコープが異なるので変数aはそれぞれ別々の変数と認識されローカル変数の2、グローバル変数1が表示されることとなります。
var a = 1; //グローバル変数
function getlocal(){
var a = 2; //ローカル変数
return a;
}
document.writeln('ローカル変数:' + getlocal()); //2
document.writeln('グローバル変数:' + a); //1
ただし、以下の例では宣言部分でvar命令がそれぞれ省略されているためグローバルスコープで変数aに1を代入していますがgetlocal()関数を呼び出された時点でaは2で上書きされるためともに2が表示されます。
変数を宣言する場合はvar命令を省略すると意図しない結果となるケースが多いので注意が必要です。
a = 1; //グローバル変数
function getlocal(){
a = 2; //ローカル変数
return a;
}
document.writeln('ローカル変数:' + getlocal()); //2
document.writeln('グローバル変数:' + a); //2
関数 | スコープ