JavaScript - if 文のセミコロンをどこにつけるか迷っている方へ
JavaScript の if 文を書くときに、「どこにセミコロン(;)をつけるのか迷う!」 という意見を聞きます。確かに最初のうちは迷うかもしれません。
ここでは、今後迷わなくて済むように、if 文中のセミコロン(;)を付けるルールを紹介します。
文の終わりにはセミコロン(;)をつける
次のような if 文があるとします。
if (a == b) {
c = 0;
d = 1;
}
この場合、「c = 0」と「d = 1」の2つが文です。
ルールとして、文の終わりにはセミコロン(;)をつけますので、 「c = 0;」、「d = 0;」となります。
文の終わりのセミコロン(;)の注意点
正確に言うと、JavaScript の仕様として、 セミコロン(;)が無くても、改行コードまでを1文とみなして実行します。
ですが、セミコロン(;)を付けない記述方法は可読性が悪くなり、 バグの原因となります。
文の終わりには、セミコロン(;)を付けることを習慣としてください。
波括弧(中括弧)の終わりにセミコロン(;)はつけない。
もう一度先程の if 文を見てみます。
if (a == b) {
c = 0;
d = 1;
}
if 文などの「制御構文」において、波括弧で囲まれた部分を「文ブロック」といいます。
人によっては「ブロック」や「コードブロック」、「複合文」とも言います。
要は「文の固まり」です。
処理が1文の場合は波括弧はなくても構いませんが、 処理が2文以上の場合は波括弧でくくり、文ブロックとします。
そしてルールとして、 文ブロックの波括弧の後にセミコロン(;)はつけません。
if 文とセミコロンの具体例
上で2つのルールを挙げました。
- 文の終わりにはセミコロンを付ける。
- 文ブロックの波括弧の後にはセミコロンは付けない。
この2つのルールに従って、if 文をいくつか具体的に見ていきます。
1文、波括弧なしの場合
if (a == b) c = 0;
処理部分は1文なので、波括弧を省略することができます。
文の終わりにセミコロンを付けます。
1文、波括弧ありの場合
if (a == b) { c = 0; }
処理部分は1文ですが、波括弧をつけているケースです。
文の終わりにはセミコロンを付け、 波括弧の後にはセミコロンは付けません。
複数文の場合
if (a == b) {
c = 0;
d = 1;
}
それぞれの文の終わりにはセミコロンを付け、 波括弧の後にはセミコロンは付けません。
else 句がある場合
if (a == b) {
c = 0;
} else {
d = 0;
}
else 句があっても考え方は同じです。
それぞれの文の終わりにはセミコロンを付け、 波括弧の後にはセミコロンは付けません。
まとめ
- 文の終わりにはセミコロンを付ける。
- 文ブロックの波括弧の後にはセミコロンは付けない。
この2つのルールを把握していれば、 if 文を書くときに「どこにセミコロン(;)をつけるのか迷う」ことがなくなります。
ぜひ参考にしてください。