梅ちゃん堂 > JavaScript 入門 > JavaScript の基礎 >
- JavaScript の式 -

JavaScript に於ける構文の1単位が「式」です(注1)。式には様々なものがあります。

var A; //変数 A を宣言

B = ""; //文字列変数 B の内容をクリア

var C = 0; //数値型変数 C を宣言し、0 に初期化

msg = "Hello"; //変数 msg に "Hello" を代入

data1 = document.forms[0].element[0].value; //変数 data1 にフォームデータを代入

document.write("いらっしゃいませ!"); //文書中に "いらっしゃいませ!" と表示する処理

SetData(); //ユーザー定義関数 SetData() を呼び出す

if (A == 0) A = 1; //変数 A が 0 なら A に 1 を代入

(B == "") ? B = "データがありません。" : B = "データがあります。"; //文字列変数 B の内容が無ければ B に "データがありません。" を、 さもなければ B に "データがあります。" を代入

for (i = 0; i < 100; i++) SetData(); //SetData() 関数に定義した処理を 100 回繰り返す

わかりやすく言うと、式はそれだけで独立して機能する単位であり、式が正しく書かれていれば、少なくとも構文エラーにはならないということです。

上の例では個々の式が ;(セミコロン)で終わっていることに気づかれたと思います。 式の終わりには必ず ;(セミコロン)を付けなければいけないというわけではありません。 JavaScript では、改行も ;(セミコロン)と同じ役割をするからです。例えば、

var A = 100;
var B = 200;
return A + B;


は、

var A = 100
var B = 200
return A + B


と書いても同じです。それなら ;(セミコロン)など要らないではないか、と思うかも知れませんが、

var A = 100; var B = 200; return A + B;

のように、 ;(セミコロン)を使えば複数の式を1行で書くことも出来ます。 ;(セミコロン)を使うかどうかはあなた次第ですが、 筆者は厳格なプログラミング言語を学んできたので、改行のあるなしに関わらず ;(セミコロン)で式の終わりを明示する方が好きですね。 そういうわけでここでは常に ;(セミコロン)を使う書き方に統一します。

むしろ注意しなければならないのは、改行が式の終わりを意味しているので、不用意な場所で改行しないようにすることです。 改行も ;(セミコロン)と同じ役割をすると書きましたが、以下の例ではそうではありません。

var A // ここで改行
= 100;

var A = // ここで改行
100;

document.write // ここで改行
("こんにちは");

document. // ここで改行
write ("こんにちは");

document // ここで改行
.write ("こんにちは");

msg = "お元気ですか?"; document.write ("こんにちは", // ここで改行
msg);

if (A == B) // ここで改行
C = D;

これらの例ではエラーになりませんが、もし改行位置に ;(セミコロン)を入れればエラーになります。 ですから ;(セミコロン)の代わりに改行を使うのではなく、改行は改行、式の終わりには ;(セミコロン)を使うという風に使い分けた方が良いのです。

JavaScript は書き方に自由度の高い言語ですが、もちろん改行位置によってエラーになる場合があります。 特に予約語や、変数名、関数名、定数の途中で改行を入れた場合です。

var CodeName = navigator.app // ここでエラー
CodeName;

document.write("ようこそいらっしゃいました。 <BR>// ここでエラー
どうぞごゆっくりお楽しみ下さい。");

特に後者は初心者が陥りやすいエラーで、通常の HTML の感覚で改行を入れたのですが、 実際はダブルクオーテーション(" ")で囲まれた定数の真っ只中ですから改行を入れてはいけないのです。 これを回避するには、

document.write("ようこそいらっしゃいました。 <BR>",
"どうぞごゆっくりお楽しみ下さい。");


のように複数の文字列定数にしてコンマで区切るか、

msg1 = "ようこそいらっしゃいました。 <BR>";
msg2 = "どうぞごゆっくりお楽しみ下さい。"
document.write(msg1 + msg2);


のように変数に分けて代入する方法があります。

;(セミコロン)は式の終わりを表すと前に書きましたが、条件構文は例外のようで、 複数の条件節はそれぞれ ;(セミコロン)もしくは改行で区切らなければならない約束です。

if (A == B) C = D; else C = E;

if (document.getElementByID) alert("あなたのブラウザは W3C DOM をサポートしています。") // ここで改行または ;(セミコロン)を入れる
else alert("あなたのブラウザは W3C DOM をサポートしていません。")

注1
ここで言う「式」は、必ずしも世間一般で言う定義とは一致しないかも知れません。ここでは1つの命令文を「式」と呼ぶことにします。
前ページに戻る 前ページに戻る 次ページに進む
Copyright © 2003 梅ちゃん堂. All Rights Reserved