JavaScript が HTML に埋め込んである場合、プログラム部分が「<!--」と「//-->」で囲まれているものをよく見かける。これは HTML のコメントと JavaScript のコメントがうまい具合に組み合わされて出来ている。JavaScript の書式について考える。
きっかけとなった疑問は、「JavaScript を含む Script タグは1行で書けるか?」、すなわち
あるいは
と書くことが可能なのかというものである。答は「書ける。しかし書いても意味がない」である。
以下では、HTML と JavaScript の書式について考えていく。
JavaScript だけを考える場合、
とか
などと書く。しかし、JavaScript を扱うことができないブラウザでは、スクリプトのソースが表示されてしまうことがあるため、スクリプト部分を HTML のコメントで囲むのが親切な設計とされる。
しかし、JavaScript では「<!--」で始まる行は無視されるが、それ以降の「--」は解釈をしようとしてしまう。「--」は JavaScript でのデクリメント演算子だからである。そして、「>」は比較演算子であるため、これらを並べたもの「-->」は JavaScript の構文エラーとなってしまう。そこで、「//」を「-->」より前に置くことで「-->」を解釈させないようにするという方法がとられる。 「//」は JavaScript のコメントを意味し、「//」以降は行末までコメントと解釈される。これを考えに入れると、次のよく例題に示される形が得られる。
次に、これを JavaScript と Web ブラウザの両方の視点から眺めてみる。JavaScript からは、「<!--」で始まる行は無視、「//」が行頭にあればその行はコメントで無視することになるので、
と同じに見える。一方 Web ブラウザからは、
と見える。<script> タグを解釈しないブラウザからは、
と見えるのでうまい具合になっている。不明なタグは解釈されず、表示もされないからである。
さて、次に
の行数を減らせるかを考えてみる。「<!--」の行は無視されてしまうので、ここにスクリプトは書いても動作しない。したがって、最初の「JavaScript を含む Script タグは1行で書けるか?」には「ノー」という答になる。最小は次の2行で、
このような形ならうまく行きそうである。
しかし、これは見た目の悪さが、簡潔さを大きく上回ってしまっている。せっかく考えては見たものの、結構な無駄であった。とほほ。
参考:
Master Archive Index
Total Entry Count: 1957