JavaScript初心者がお送りする、JavaScript(基礎編)リファレンスサイトです。

変数

変数とは?

値を入れておくことができる箱のようなものです。
処理結果などの値を変数に格納したり、それをまた別の処理へ引き渡したりすることができます。

宣言方法

var 変数;

複数まとめて宣言する場合は、

var 変数1,変数2,変数3;

宣言と初期値の指定を同時に行う場合は、

var 変数=100;

それでは、変数に値を入れてみます。

var i=1+100;
alert(i);
  1. ・iという箱(変数)に1+100の処理結果の値を格納
  2. ・alertで変数iの中身(101)を表示

数値だけでなく、文字列も変数に入れることができます。

var n="もじれつ";
alert(n);
  1. ・nという箱(変数)に"もじれつ"を格納
  2. ・alertで変数nの中身("もじれつ")を表示

なお、JavaScriptは値に応じて自動で型を割り当ててくれるので、宣言時に「型」を指定する必要はないです。

スコープとは?

変数の有効な範囲のこと。
変数の宣言されている位置によって、スコープの範囲が変わってきます。
関数(function hogehoge(){...)の外側で宣言されている変数を「グローバル変数」といい、スコープの範囲は「プログラム全体」となります。
関数の中で宣言されている変数を「ローカル変数」といい、スコープの範囲は「その関数の中」だけとなります。

まずはじめに、以下のサンプルを。

var n="テキスト1";
var n="テキスト2";

alert(n);
  1. 変数nを宣言し、その中に文字列「テキスト1」を代入
  2. 変数n(↑と同じ)を宣言し、その中に文字列「テキスト2」を代入
  3. 警告ダイアログで、変数nの中身を表示

後から代入した文字列(今回だと「テキスト2」)が表示されます。

次のサンプルは、スコープの範囲の確認です。

var n="テキスト1"; //グローバル変数

function hoge() {
	var n="テキスト2"; //ローカル変数
	alert(n);
}

alert(n);
hoge();

alert(n)で表示される文字列は「テキスト2」ではなく「テキスト1」です。
後から宣言された「テキスト2」が表示されそうな感じがしますが、「テキスト2」は関数hogeの中で宣言されているローカル変数のため、関数hogeの中でのみ有効です。
よって、alert(n)で表示される文字列は、グローバル変数の中身「テキスト1」が表示されます。

なお、省略可能なvarですが、省略するとその変数が自動的に「グローバル変数」となってしまうので注意が必要です。
よって、普段からvarをつけて変数を宣言する癖をつけた方がよさそうです。

ぺーじとっぷへ