JavaScript のセミコロンは省略しない方がいい?
JavaScriptではセミコロンは省略可能 上記の画面の最後の行では「Missing ';'」(セミコロンが抜けている)というメッセージが警告として表示されて いるのが確認できる。JavaScriptの入門書で「JavaScriptの1文は必ずセミコロンで終わる」と学んできた諸氏に とっては、これは「警告ではなくてエラーなのではないか」と思われるかもしれない。 しかし実際には、それぞれの文が改行で区切られてさえいれば、JavaScriptエンジンが適宜セミコロンを補って 解釈してくれるので、JavaScriptにおいては文末のセミコロンは省略可能だ。従って、以下のようなJavaScriptの コードは正しく動作する。 |
JavaScript-20
と書いてある、こんなサイトを見つけた。
果たしてそうなのだろうか?
なんでこんな疑問が出てきたかというとトラックバックで以下のブログ記事を見つけたため。
onclick="return DoWGA(20426);" 最後にセミコロンを追加しただけ セミコロンの有無でナゼ挙動が変わるのかは理解不能です。 |
なび堂・メモランダム Microsoft Download Centerがおかしい・解析編
JavaScript は, 安全にセミコロンの存在が推測できる場合を除いて, 文の最後にセミコロンを要求します. これらの挙動は本当にプログラマを驚かせてしまいます. よってセミコロンを徹底すべきです. |
Google JavaScript Style Guide 和訳 — Google JavaScript Style Guide 和訳
なんだって!?
これは目から鱗だ
でも、DoWGA の件では次に続くトークンはない。
onclick 内部コードの問題で似たようなことが起こっているのだろうか
IE以外のブラウザは経験上セミコロン無いのを嫌がりますよ。IEだけ何故か通ることはよくありました。