C言語系言語では、セミコロン（;）は文の終わりを表します。他のC言語系言語とは異なり、JavaScriptでは文の最後にセミコロンを使用することを強制していません。その代わり、セミコロンは任意でありJavaScriptのインタープリタがコードを実行する際に「インテリジェントに」追加します。
JavaScriptでは、次のような場合にセミコロンが自動的に挿入されますColin J. Ihrig (2012-03-09). "[http://cjihrig.com/blog/author/cjihrig/ The Dangers of JavaScript's Automatic Semicolon Insertion]" (in English) (HTML). cjihrig.com. 2017-03-29にオリジナルから[https://web.archive.org/web/20170329174739/http://cjihrig.com/blog/the-dangers-of-javascripts-automatic-semicolon-insertion/ アーカイブ]されています（2021-07-12閲覧）。。
break、continue、return、throwの後に行終端記号がある場合。
ASIはコードを書きやすくしますが（セミコロンをすべて入力する必要はありません）、実際には、セミコロンがないとプログラムのデバッグが難しくなります。このため、ステートメントの最後にセミコロンを使用することはベスト・プラクティスとして広く認識されています。しかし、ASIの存在は何を探すべきかを知らなければトラブルシューティングが困難ないくつかのバグを作り出す可能性があります。
最初のケースでは、プログラマは 2*a + 1 を返すことを意図していましたがコードは何も返しませんでした。同様に、2番目のケースではプログラマは中括弧{}で囲まれた行を返すことを意図していましたが、コードは何も返しませんでした。このように、JavaScriptには奇妙な点があるため文の中で改行したり開始波括弧を別の行にしたりしないことがベスト・プラクティスとされています。