第1章 JavaScript導入ガイド

変数

2009年8月4日

変数の基礎知識

変数は、プログラム中で値を保存しておくために使用します。ここでいう値とは、例えばウインドウ内に表示する文字列や、計算に使われる数字のことです。

x = 1;

上記ではxが変数で、右辺の値が代入されます。右辺が代入された結果、xの値は1となります。
変数の値には数値以外にも文字列や論理値などのデータ型がありますが、JavaScriptはデータ型を意識せずに使うことができます。詳しくは後述します。

変数の宣言

変数の宣言は必ずしも必要ではありません。ただし、使用する前に変数を宣言しておくのがよいプログラミング作法とされています。変数の宣言にはvarキーワードを使用します。

JavaScriptにおける変数は、以下のように宣言を行います。

変数の宣言
var x;

上記では変数xを宣言しています。上記のように初期値なしで宣言された変数の値はundefinedとなります。

JavaScriptでは宣言時に変数に値を代入しておくことができます。

変数に初期値を設定
//文字型に変換
var a="Doremi";
//数値型に変換
var b = 3.1415;
//論理型に変換
var c = false;
//nullになります
var d = null;

また、演算子カンマ (,) を利用して、複数の変数を同時に宣言することも可能です。例えば、以下のように宣言を行うこともできます。

var a , b;

変数へ値の代入

変数への値の代入には、代入演算子 ( = ) を使います。

変数に値を代入
x = 5;

変数 x に 5 を代入しています。この状態の x は数値の 5 とまったく同じに扱うことができ、後から利用することができます。ここでは変数 x に数値が格納されていますが、その他に文字列や様々なタイプの値を格納することができます。

式は、値または変数、関数と演算子の組み合わせによって表現されます。JavaScriptでは、あらゆる表現は値を持ちます。たとえば、

a = 12; 

という表現は、aに12という値を代入するという演算だけではなく、12という値をも表現しています。

次の式では、100 に x を足して y に代入しています。

y = 100 + x;

x には 5 が代入されているので、 y には 100 + 5 の結果の値 105 が代入されます。

次のような表現も可能です。

a = ((b = 12) == 12); 

この表現では12が代入され、次に12 ==12という論理式が評価されます。結果はtrueが代入され、この表現全体の値はtrueとなります。

型の自動変換

JavaScriptでは代入された値によって、自動的に型が変換されます。次のように処理が続いていたら、変数answerはコメントに書かれているように変化します。

//変数answerを定義。型は決まっていません。
var answer;
//文字列を代入しているので、answerは文字列になります。
answer = "Doremi";
//数値を代入すると、answerは文字列から数値に変化します。
answer = 1;

数値と文字の演算の結果は文字列になります。

x = "A" + 1 // x の値は A1

このように変数の扱いが曖昧で、その時々によって変化する言語のことをダイナミック言語といいます。

変数の表記

変数名は英数字字とアンダースコア( _ )を自由に組み合わせることができます。変数名の先頭に数字を使うことは出来ないのでご注意ください。

変数名のルール
name_01;   # OK
_name_01;  # OK
0234;   # NG。数字で始まる変数名は許されていません

また、大文字と小文字は区別されます。a と A は違う変数として扱われます。

変数名の大文字と小文字
a = 1; # a に 1 を代入
A = 2; # A に 2 を代入。a の値に影響はない

変数の有効範囲

変数には『グローバル変数』と『ローカル変数』があります。どこからでも参照することが可能な変数をグローバル変数、有効な範囲を決められている変数をローカル変数と呼びます。JavaScriptでは、関数内で var を付けて変数宣言すると、その変数はローカル変数となり、var を付けない場合はすべてグローバル変数になります。

ローカル変数とグローバル変数の違い
var a = 5;
var b = 5;
function func () {
var a = 10;
b = 10;
}
console.log("a:" + a + " - b:" + b);
func();
console.log("a:" + a + " - b:" + b);

スクリプトの実行結果は以下のようになります。

a:5 - b:5
a:5 - b:10

func 内で宣言された変数 a は var を使ってローカル変数ということを明確にしているので、func 外で宣言されているグローバル変数 a とは別の変数として扱われます。
 

予約語

予約語は、変数名、関数名、メソッド名、プロパティ名、オブジェクト名などには使用できません。これらの言葉のいくつかは、JavaScript で実際に使われているか、将来使用のためにキープされています。

  • break
  • case
  • catch
  • class
  • continue
  • debugger
  • default
  • delete
  • do
  • else
  • enum
  • export
  • extends
  • finally
  • for
  • function
  • if
  • implements
  • import
  • in
  • instanceof
  • interface
  • let
  • new
  • package
  • private
  • protected
  • public
  • return
  • static
  • super
  • switch
  • this
  • throw
  • try
  • typeof
  • var
  • void
  • while
  • with
  • yield

Comment

コメントを残す

メールアドレスが公開されることはありません。

リズムファクトリーはホームページの制作会社です。
ホームページ制作に関するご要望・ご相談はこちらからどうぞ。