セミコロン入れる or 入れない
JavaScriptにセミコロンは入れるのか?入れないのか? - Qiita
セミコロン入れる入れないは自由だし自分は入れない派……という気持ちだったんだけど認識を改める必要がありそう。
コンパイラのセミコロン自動挿入によって落とし穴がある
}
or 改行後 or プログラムの末尾だけ挿入される- 次の入力トークンを字句解析できるときだけ挿入される
- 記事の例にもあるが、次の行の記述を続けたときに解析できるかどうか
- これに落とし穴があり、次の文の始まりが以下のどれかの場合セミコロンが挿入されない
(
or[
or+
or-
or/
- これも例にあるように、前の文によっては
[
から始まるのでオブジェクトのプロパティとして認識されたりしそう - 意図していない挙動になってしまう
セミコロンを記述すればいいというわけでもない
- 変に改行を入れると自動挿入される
- ただし for ループの区切りとして使われるセミコロンは自動挿入されない
どうすればいいか
- セミコロン書かなきゃと思ったけど、書いても意図しない動作が起きる可能性はある
- ので ESLint を導入する
- セミコロンを常に書く場合は
no-unreachable
- セミコロンを常に書かない場合は
no-unexpected-multiline
入れる派 or 入れない派
- どっちにするにしろ ESLint は必須
- ブコメ見るとセミコロン入れといたほうがいいよね派が多そう