行末のセミコロン
JavaScriptでこんなソースを書いた。
function hoge() { return "タピオカ" + "パーン"; }
実行したら undefined が返ってきた。
調べてみたところ、JavaScriptの文法では、行末の「;」(セミコロン)を省略することができるらしい。
つまり
function hoge() { return; // ← ここで関数の実行終わり "タピオカ" + "パーン"; }
という感じで解釈されたんだろう。undefined が返ってくるわけだ。
行末に「次の行に続くかもよ」と思わせるようなモノがあれば、次行も合わせて実行してくれるらしい。
function hoge() { return ( // ← 次行に続く "タピオカ" + "パーン" ); }
って書いたらちゃんと動いた。
「break」 も似たような動きをするので気をつけましょう。ってサイの本に書いてた。
私は「セミコロン必須の方がわかりやすくて良いなー。何か理由があるのかなー」と思った。