bff

フルスタックエンジニアを目指して学んだことなどを記録しています

automatic semicolon insertion(セミコロン自動挿入)の挙動について

Reactを学ぶなかで、セミコロン自動挿入を防ぐためにJSXを括弧()で括ることが推奨されていました。 javascriptセミコロン自動挿入の挙動をあまり知らなかったので調べて見ました。

仕様としては、ECMA Scriptの§11.9.1 Rules of Automatic Semicolon Insertionに纏められています。

  1. 改行もしくは}が文法的に許されていない場所に出てきたときに、その前にセミコロンが挿入される
  2. 入力を読み終わったときに、完全なScript/Moduleとして解析(parse)できない場合は、セミコロンが入力の後ろに挿入される
  3. 読み込んだトークンがRestricted tokenに該当する場合、その前にセミコロンが挿入される。(continue, break, return, throw, yieldの後に改行があった場合、その改行の前にセミコロンが挿入される。postfixオペレータとして++, --が扱われる状況で、++,--の前に改行が入った場合、改行の前にセミコロンが挿入される。)

自分の語学力が拙いせいもあり、いまいち理解しづらいかと思いますが、一定の複雑なルールに基づきセミコロン自動挿入が行われる可能性があるため、気をつけたほうがよいということは理解できました。

もっとわかりやすい解説があれば教えていただけるとありがたいです。