「ノンプログラマのための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);
})();
今の知識力では、「特定の条件」を全て理解するのは難しいけれど、「必ずセミコロンを付けましょう」の理由を理解することはできた。