技術とかの雑なToday I Learnedメモ

セミコロン入れる or 入れない

セミコロン入れる or 入れない

JavaScriptにセミコロンは入れるのか?入れないのか? - Qiita

セミコロン入れる入れないは自由だし自分は入れない派……という気持ちだったんだけど認識を改める必要がありそう。

コンパイラのセミコロン自動挿入によって落とし穴がある

  • } or 改行後 or プログラムの末尾だけ挿入される
  • 次の入力トークンを字句解析できるときだけ挿入される
    • 記事の例にもあるが、次の行の記述を続けたときに解析できるかどうか
  • これに落とし穴があり、次の文の始まりが以下のどれかの場合セミコロンが挿入されない
    • ( or [ or + or - or /
    • これも例にあるように、前の文によっては [ から始まるのでオブジェクトのプロパティとして認識されたりしそう
    • 意図していない挙動になってしまう

セミコロンを記述すればいいというわけでもない

  • 変に改行を入れると自動挿入される
  • ただし for ループの区切りとして使われるセミコロンは自動挿入されない

どうすればいいか

入れる派 or 入れない派

  • どっちにするにしろ ESLint は必須
  • ブコメ見るとセミコロン入れといたほうがいいよね派が多そう