Eyes, JAPAN Blog > JavaScriptの自動セミコロン挿入について

JavaScriptの自動セミコロン挿入について

Yuta Sakaguchi

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

こんにちは。アルバイトスタッフの坂口です。
本日はJavaScriptの自動セミコロン挿入という機能について書きたいと思います。

まず

いろんなプログラミング言語があると思いますが、それぞれ文の終わりを改行やセミコロンなど何らかで表すかと思います。

そしてJavaScriptはセミコロンを利用してあらわします。またJavaScriptを勉強された人は付けないとエラーになってしまう勉強されたと思います(僕だけだったらすいません)

しかし!実は(大抵の場合)なくてもエラーにはならないんです!

 

それは自動セミコロン挿入のおかげ

なぜエラーにならないかというとJavaScriptには自動セミコロン挿入という機能がありそれのおかげなのです。

ただすべての状況でセミコロンを挿入してくれるというわけではなく、以下の条件の場合になります。

  1. 行の終端、または”}”が文法上で許されないような形である場合
                   

    
           { 1 2 } 3
           

    つまり、上記のような場合は以下のようになるということです。
                   

    
           { 1 2 ;} 3;
           

  2. プログラムをパースした際に最後までパースされたが、正しい文法として理解されなかった場合
                   

    
           var a = 1
           

    上は以下のようになります。
                   

    
           var a = 1;
           

  3. 以下で行の終わりが許されていないところに終りがある場合
    • インクリメント
    • デクリメント
    • continue
    • break
    • return
    • yield,yield*
    • module

                   

    
    i
    ++;
    
    i
    --;
    
    function(){
        return
        hoge;
    }
           

                   

    
    i;
    ++;
    
    i;
    --;
    
    function(){
        return;
        hoge;
    }
           

    上記のようになりエラーになります。

 
 

最後に

たしかに自動セミコロン挿入は便利ではありますが、公式にもあまり使わないほうがいいとのことと、予期せぬエラーが発生するかもしれないのでちゃんといれましょう!

  • このエントリーをはてなブックマークに追加

Comments are closed.