JavaScript内のHTMLコメントの意味

scriptタグ内にHTML風のコメントが書かれているソースが時々あります。

<script>
<!--
    alert(1)
-->
</script>

JavaScriptのコメントは//か/* */なので、コメントとして間違っています。

これが何かというと、JavaScriptを理解できないブラウザがいた頃の名残です。

JavaScriptが理解できなかった場合はHTMLでコメントアウトするようになっています。コメントアウトしなかったらタグ内の文字がテキストとして出力されてしまうからですね。

JavaScriptが動いた場合、JavaScriptはこのHTML風のコメントは当該行の末尾まで無視するようになっています。

JavaScriptエンジンは、SCRIPT要素の始めに文字列「<!–」が存在することを許容し、この場合当該行の末尾までの文字を無視する。

W3C勧告私的日本語訳

JavaScriptが動かないブラウザなんてもはや存在しないので、過去の遺物ではあるのですが、実際にこうやって書かれているソースは現代でも多く存在する為、ECMAScript 2015でも後方互換性の為にこの「HTML-likeコメント」は使えるようになっています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)