■JavaScriptの文法■

ここでは厳密な文法(構文など)や文法全体は説明せず,概要と必要事項だけにとどめる.

■JavaScriptのプログラムは「文」の集まり■

JavaScriptは「宣言文」と「命令文」の集まりとして記述される.

  • 宣言文:変数(後述)を宣言するための文
  • 命令文:プログラムの実行文,式・if文・for文・switch文がある

他にはコメント(注釈)を入れることもできる.コメントはプログラムを読む人のための手かがりとして記述されるもので,プログラム内容やプログラムの意味に影響を一切与えない.

■コメント■

JavaScriptではコメントは,つぎのような記号を使う.

//この記号の後から改行するまでは,好きなコメントを書いてよい

記号「//」は,行頭からでなくともよく,次のようにプログラムの途中には さむこともできる.コメント内容には日本語の文字を書いてもよい

...
プログラムの内容
プログラムの内容   //ここに左のプログラム内容に対する説明を書く
プログラムの内容
...

■変数の宣言文■

変数とは,一時的に計算結果などを記憶しておくために確保されている「場所」と考えればよい.その「場所」には任意の名前を付けることができる.その場所と名前と定義を行うための文が,宣言文である.

宣言文は次のように指示する.行末の「;」に注意.「;」は文の区切りを明示する句点のような意味を持つ.

 var 変数名;
 var 別の変数名;
 var さらに別の変数名;

例えば

var hogehoge;

とすれば,hogehogeという名前の場所が宣言できる.

プログラム中では,必要なだけ宣言文を並べることができる.

変数名は,アルファベット文字,アンダーバー記号「_」,数字で表現する.ただし,最初の文字には数字は使用できない.アルファベットであっても,宣言文を意味する「var」のようにプログラム上特別な意味を持つ単語は変数名には使用できない.

※「var」のようなプログラム上特別な意味を持つ単語のことを「予約語」と呼ぶ.

※日本語の文字は変数名には使用できない

変数の宣言には,さらに次のようなバリエーションがある.

var 変数名, 別の変数名, さらに別の変数名;
var 変数名=初期値;
var 変数名=初期値, 別の変数名=初期値;
例:
var apple, orange, grape;
var wheight = 47.84; 
var height = 800; width = 480;

複数の変数名を「,」で区切ることで一度に宣言することができる.

変数名に続けて「=初期値」を書くことで,変数に初期値を代入できる.

変数に代入できる値には次のようなものがある.

Number型(数値型)  3.1415 
String型(文字列型) "こんにちは" 
Boolean(論理型) trueまたはfalse 

これら値のうちどれかが代入された時点でその変数の型が決定される.文字列には日本語の文字を含めても問題ない.

■命令文■

■式■

式には,算術計算式と条件式がある.条件式はif文の所で説明する.算術計算式は,いわゆる普通の計算式で,代表的なものが代入式である.代入式は,数学でいう等式ではなく,左辺から右辺へ代入させるための命令である.初期値を持った宣言文は,この代入文として働く.

  変数 = 代入値;
  変数 = 計算式;

この式は,ある変数へ計算式の結果の値を代入することを意味する.宣言文と同様に,行末の「;」は命令の終わりを意味する記号である.代入値は,初期値つきの宣言文と同様に,Number型かString型かBoolean型のどれでもよい.

あるいは,「=」の右側にある右辺には計算式を書くことができる.計算式は,Number型の変数を使った計算を記述したものである.例えば,円の面積を求めるようなプログラムは

  var menseki;
  var r = 100;
  menseki = 3.1415 * r * r;

などのように書ける.

計算式としては,四則演算「+」「-」「*」「/」などを使用して,数学における計算式と同様に記述すればよい.ただし数学の記号と異なり,乗算は「*」除算が「/」記号である点に注意.演算の順序を決定するため,括弧「 (」「)」も利用できる.ただし中括弧や大括弧はプログラム上で別の意味があるため利用できない.他には剰余演算の「%」(あまりを求める)がある.

計算式には数値型以外の変数は使用できない.ただし例外としてString型の場合には,「+」演算を使って,文字列を連結することができる.例えば

var a = "前半";
var b = "後半";
var s1,s2;
s1 = a + b;
s2 = a + "と" + b;

と書くと,s1には「前半後半」,s2には「前半と後半」と代入されることになる.

■条件文■

ある条件が成立するかどうかで,実行するプログラム(命令文の集まり)を切り替えるために,if文が用意されている.if文は次のようなものである.

if(条件式){

  条件式が成り立った時の処理

}else{

  条件式が成り立たなかった時の処理

}

else以下は省略することもできる.ifelseという単語は予約語なので変数名としては使用できない.

条件式は,Boolean型の結果,つまりtrueかfalseだけを持つことができる.そのための演算子として「==」「<=」「>=」「<」「>」「!」がある.それぞれの意味は次のようなものである.

  a == 10             aが10と等しいかどうか
  a == "こんにちは"   aの内容が"こんにちは"かどうか
  a != 20             aが20ではないかどうか(20でなければtrue)
  a != "さようなら"   aの内容が"さようなら"でないかどうか
                           (1文字でも違えばTrue)
  a < 100             aが100より小さいかどうか
  a <= 100            aが100以下かどうか(aがちょうど100でもtrue)
  a < 200             aが200より大きいかどうか
  a <= 200            aが200以上かどうか(aがちょうど200でもtrue)
  !(条件式)           条件式の値の逆,(条件を反転したもの)

例えば次のように使用する.

 if( a == 10 ){
    aが10だったときの処理
 }

条件式と条件式を「&&」「||」演算子によって組み合わせて,より細かい条件を表現することもできる.

条件式1 && 条件式2     AND結合(条件式1と2が両方とも成立すればtrue) 
条件式1 || 条件式2   OR結合(条件式1か2どちらか一方でも成立すればtrue)

■for文■

処理の繰り返しを記述するための命令文がfor文である.for文は次のように書く.

  for( 最初の一回を行う前の処理; 条件式; 毎回後の処理 ){

    繰り返したい処理

  } 

「最初の一回を行う前の処理」には,通常ループ変数の初期化を行う.ループ変数とは,for文で繰り返す際に繰り返し回数に比例して値を変化させるような変数のことをいう.「条件式」には,このループ変数を使った条件を書くことで繰り返し回数を制御し,「毎回後の処理」にはループ変数の値を変化させるための命令を書いておく.例えば,

var loop;
for( loop = 0; loop < 100; loop++ ){
  繰り返す処理(通常loopを含む計算処理などを行う)
}  

のように書く.これはループ変数にloopという名前の変数を用い,その初期値を0にしてから繰り返しを始めている.条件式にはloop<100が書かれているため,loopが100以下の間は繰り返される.毎回後の処理では「loop++」と書かれているが,これは

loop = loop + 1;

の省略形であり,loopに1を加えたものを新しくloopに代入し直すことを意味する.これにより,loopは1,2,3,4...というように1ずつ増えながら,そのたびに繰り返し処理を行い,最後は100になったときに条件式が成立しなくなるのでfor文の実行を終了することになる.

参考までに,「++」の他に「--」もある.例えば「loop--」と書いた場合は,

loop = loop - 1;

と同じ意味になる.