セミコロンについて

javascript

javascriptの行末はセミコロンを記述して、次のプログラムの先頭と明示的に分ける書き方が一般的です。

var a = 100;

ただし、セミコロンは必ず書かなければエラーになるという仕様ではありません。

例えば、下記のようなプログラムの場合、

var a = 100;
var b = 200;

console.log(a); //100
console.log(b); //200

変数aとbにはそれぞれ100と200が代入され、console.logに出力されますが、
次のように、変数aの最後のセミコロンを省いて書いたとしても、エラーにならずに実行されます。

セミコロンを省いた場合、改行が行末(プログラムの区切り)として処理されます。

var a = 100
var b = 200;

console.log(a); //100
console.log(b); //200

また、セミコロンを明示して、次のように1行に複数の命令を書くこともできます。

var a = 100; var b = 200;
console.log(a); //100
console.log(b); //200

ここまでで注意が必要な点は、改行が全て行末として解釈されるわけではないという点です。
次のような例は、処理のされ方がこれまでとは違います。

var a = 700
var b
c
=
800

console.log(a); //700
console.log(b); //undefined
console.log(c); //800

2行目、3行目で改行されていますが、変数bと変数cは別々のものとして解釈されています。
決して変数bcという単位で代入がされるわけではないです。

javascriptとして解釈されるには変数bが一旦、その行で終わったことになり、改めて変数cの暗黙的な定義がされた後に、値が代入されています。

このとき、変数cの行末は改行されていますが、セミコロンとしての解釈ではなく、次の2行の変数の代入までをひとつの命令として解釈しています。

改行がセミコロンとして解釈されない例があります。
下記の命令の場合は、処理に注意する必要があります。

//制御文の場合
return
break
continue

//インクリメント、デクリメント演算子
++
--

ポイントとなる点は、前者は制御文の直後に改行を行わないことと、
後者はインクリメントしたい変数と同じ行に演算子を書くことになります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です