@cc_on ってなに?
なんだろうとおもい、早速ぐぐってみたところ、ここに書いてありました。
@cc_onはステートメントというものらしく「条件付きコンパイルの機能をアクティブにします。」との説明があります。
でも、「条件付きコンパイル」ってなんだよ!そんなの知らないぜ!
ということで調べてみたら、以下のようなことが書いてありました。
条件付きコンパイルを使用すると、JScript の新しい言語機能を利用しながら、その新機能をサポートしていない以前のバージョンとの互換性も保持できます。JScript の新機能を使用する場合、スクリプトにデバッグサポートを埋め込む場合、コード実行をトレースする場合などは、条件付きコンパイルを使用するのが一般的です。
なるほど。ようは、条件付きコンパイルに対応していないブラウザには影響せずに、JScriptの新しい機能を使えちゃうぜ、ということらしいです。
ということでためしに以下のようなHTMLを書いて動作確認してみた。
<html> <body> <script type="text/javascript"> /*@cc_on document.write("Hello, JScript!"); @*/ </script> </body> </html>
このHTMLを各ブラウザで確認してみたところ、Internet Explorerで開くと「Hello, JScript!」とみごとに表示され、FirefoxやOperaだと表示されませんでした。
ちなみに「/*@cc_on」の /* と @ の間にスペース空けたり、@ と cc_on の間にスペースを空けても動きませんでした。ようは「/*@cc_on」のどこにもスペースは空けるなということですね。
この条件付きコンパイルは、こういう用途以外にもいろんな機能が使えるみたいですので、興味のある方はこちらの条件付きコンパイルの説明のページをご覧になってみてください。
ってここまで書いたけど、@cc_on ってもしや常識!?