JavaScriptの変数
変数とは、変化しうるものという意味です。JavaScriptでは、変数は後で変更可能なデータ値を保存します。
JavaScriptで変数を宣言するには、予約キーワードvarを使用します。
var 変数名;
var 変数名 = 値;
変数には一意な名前を付ける必要があります。以下は変数を宣言しています。
var msg; // 値なしでの変数定義
上記の、var msg;は変数宣言です。まだ何の値も持っていません。値を持たない変数のデフォルト値はundefinedです。
変数に値を代入するには、宣言時または宣言後、アクセスする前に=演算子を使用します。
var msg;
msg = "Hello JavaScript!"; // assigned a string value
alert(msg); // access a variable
//the following declares and assign a numeric value
var num = 100;
var hundred = num; // assigned a variable to varible
上の例では、まず変数 msg を宣言し、次のステートメントで文字列の値を代入しています。
num 変数は、同じステートメントで宣言され、数値で初期化されています。最後に、hundred 変数が宣言され、他の変数の値で初期化されています。
上の例では、まず変数 msg を宣言し、次のステートメントで文字列の値を代入しています。num 変数は、同じステートメントで宣言され、数値で初期化されています。最後に、hundred 変数が宣言され、他の変数の値で初期化されています。
複数変数の宣言
複数の変数をカンマで区切って1行で宣言することも可能です。
var one = 1, two = 'two', three;
変数宣言のホワイトスペースと改行について
JavaScriptでは、varキーワードで変数を宣言すると、複数の空白文字や改行が許されます。
var
one
=
1,
two
=
"two"
最後のセミコロン ; は任意であることに注意してください。
緩やかな型付けの変数
C#やJavaでは、変数が強く型付けされています。これは、変数が格納するデータの種類を指定するデータ型を宣言しなければならないことを意味します。
JavaScriptは緩やかな型付け言語です。つまり、データ型の宣言を必要としない。文字列、整数、浮動小数点数、ブール値など、任意のリテラル値を変数に代入することができます。
var myvariable = 1; // numeric value
myvariable = 'one'; // string value
myvariable = 1.1; // decimal value
myvariable = true; // Boolean value
myvariable = null; // null value
変数のスコープ
JavaScriptでは、変数はグローバルスコープとローカルスコープのいずれかで宣言することができます。
グローバル変数
関数の外で宣言された変数をグローバル変数と呼びます。グローバル変数は、JavaScript のコード内のどこにでも、たとえ関数の中であってもアクセスすることができます。
ローカル変数
関数の内部で宣言された変数を、その関数のローカル変数と呼びます。これらは宣言された関数の中でのみアクセス可能で、外からはアクセスできません。
次の例は、グローバル変数とローカル変数を含んでいます。
var greet = "Hello " // global variable
function myfunction(){
var msg = "JavaScript!";
alert(greet + msg); //can access global and local variable
}
myfunction();
alert(greet);//can access global variable
alert(msg); //error: can't access local variable
varキーワードを使わない変数の宣言
変数は、var キーワードを使わずに宣言し、初期化することができます。ただし、var キーワードを使わずに宣言した変数には値を代入する必要があります。
var キーワードを使わずに宣言された変数は、宣言された場所に関係なくグローバル変数になります。詳しくは、JavaScriptの変数スコープをご覧ください。
既存のグローバル変数を誤って上書きしてしまう可能性があるため、varキーワードを使わずに変数を宣言することは推奨されません。
function myfunction(){
msg = "Hello JavaScript!";
}
myfunction();
alert(msg); // msg becomes global variable so can be accessed here
JavaScriptの変数名
- JavaScriptでは変数名の大文字と小文字は区別されます。ですから、変数名 msg, MSG, Msg, mSg は別々の変数とみなされます。
- 変数名には、文字、数字、記号 $ と _ を使用できます。
- 変数名は0-9の数字で始めることはできません。
- 変数名には、JavaScriptの予約キーワードを使用できません。例えば、var, function, returnは変数名にはできません。
留意すべき点は以下の通りです。