Edited at

【JavaScript】「セミコロン」について学ぶ

More than 1 year has passed since last update.

「ノンプログラマのためのJavaScript はじめの一歩」 第2章 JavaScriptの文法 より



  • ; は文章の終わりを明示する

  • 改行をする場合に限り、文末の ; を省略できる


気になったこと


しかし、セミコロンを省略すると意図しない動作になることがあるので、必ずセミコロンを付けましょう。

P.20より引用


「意図しない動作」とは…?

改行とセミコロンの省略の関係を軽く調べてみた。

JavaScriptは、セミコロンを省略しても 特定の条件で自動でセミコロンを挿入 して解釈してくれる仕様になっている。

この「特定の条件」に当てはまらない場合に「意図しない動作になる」らしい。

例えば、、、

var a = 1;

(function() {
console.log(a);
})(); //-> 1

このコードからセミコロンを省略すると

var a = 1

(function() {
console.log(a)
})() //-> Uncaught TypeError: 1 is not a function

// このように認識されている
var a = 1 (function() {
console.log(a);
})();

今の知識力では、「特定の条件」を全て理解するのは難しいけれど、「必ずセミコロンを付けましょう」の理由を理解することはできた。



参考サイト