JavaScript

【JS】JavaScriptにセミコロン付けない派の一意見

こんにちは!今日はJavaScriptにおける宗教戦争割と意見の割れるテーマの一つ、セミコロン付けるか付けないか問題について書きます。

はじめに

私はセミコロン「付けない派」です。

JavaScript開発歴は3年ちょいで、1年目途中から付けない派になりました。

というわけで、以下に私の思うセミコロン付けない理由について書こうと思います!あくまで一人の開発者の意見として読んでいただけるととても有り難いです:)

セミコロンを付けないがために間違えるって場面はほぼない

これが一番大きいです。

一般的にセミコロンを省略することで予期せぬ挙動となりやすい場所として、

・IIFE(即時関数)

・return直後

の2つがあります。厳密には他にもあるけど。

ただこの2つ、正直「えっ…ぶっちゃけ間違える?」って感じです。 即時関数はES6以降ではそもそもほぼ使いませんし(constができてスコープ内に変数閉じ込めれるようになったし)、 return直後に改行したくなるような思いを抱いたことがほぼありません。

というかreturn直後の改行はセミコロンあっても駄目だし(文法的にではなく人為的に間違えやすいという主張だと思うけど)。PHPみたいな{}で1行使うような書き方(GNUスタイル)に慣れてる人なら↓みたいな間違いをかろうじてするかな?って程度です。

return
  {
    one: 1,
    two: 2,
    three: 3,
  }

セミコロンを書くのが普通の風潮が薄れている

bootstrap、vue、reduxあたりはセミコロンないです。

RubyやPythonがないのはまああれとして、 AltjsのElmもないしJSとセミコロンの挙動が全く同じLuaもないです。

JavaScriptStandardStyleっていうセミコロンなし推奨の書き方もあるし。

結局JSのセミコロンって昔の名残というか、昔は必要だけど今いらんって認識でいいんじゃないでしょうか?

他言語の例だと、PHPの最後の ?> は当初は必要だったけど今はむしろ書かないのを推奨してるじゃん?そんな感じ

セミコロンが視覚的にクールじゃない

これ気にしてる人ほとんどいないと思うけどそもそもセミコロンって視覚的にすごい汚いと思う。

形状的に逆三角形で重心が高いしパーツが2つに分かれてるし、視覚的に不安定な印象を受けます(情報デザイン科出身並みの感想)上の点が下の点にぶつかった後にツルンって右側に滑っていきそうな…

句点やピリオドの安定感と比べると一目瞭然だと思います。 試しに英文のピリオドを全部セミコロンに変えてみ?すごい文体がザラザラしてやかましくなるのが分かるかと思います

セミコロンのルールは意外と難しい

関数式と関数宣言でセミコロン付ける付けない変わるって知ってました?

即時関数だとじゃあどうなるんだろ。

ifだと付けない気がする…

try catchとかどうだっけ!?

そんな悩みから開放されます:)

おわりに

セミコロン付ける付けないに限らずですが、大前提として決められているコーディングルールがあるならそれに従いましょう!でも個人的にはセミコロン付けたくないな!!セミコロンが嫌いすぎてPHPも嫌い!それは言い過ぎか。

セミコロンはあれだ、WEBではHTMLでフッターにコピーライト書く時に使う © だけでいいや、と思いました。終わり。