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 //インクリメント、デクリメント演算子 ++ --
ポイントとなる点は、前者は制御文の直後に改行を行わないことと、
後者はインクリメントしたい変数と同じ行に演算子を書くことになります。