• ベストアンサー

javascriptのコメント記号

<script type="text/javascript"><!-- プログラム // --></script> 上のパターンで、「//-->」の部分の「//」がないとダメなのですか?また、何故?

noname#201411
noname#201411

質問者が選んだベストアンサー

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.2

必要ありません。 <!--は//と同じ、行頭の-->は//と同じことになっています。 https://people.mozilla.org/~jorendorff/es6-draft.html#sec-html-like-comments https://javascript.spec.whatwg.org/#comment-syntax ただ、-->の方は行頭でないとエラーになるので、念のため//をつけているのでしょう。

noname#201411
質問者

お礼

早速のご回答ありがとうございます。 <!--は//と同じ、行頭の-->は//と同じ ↑ う~ん、ややこしいですねぇ。 このロジックが私にはすんなり頭に入らないし、英語も読めないんですが、とにかく、javascript非対応ブラウザへの対応方としては、 (1)無駄であっても//を付けて最後は「//-->」で閉じておけば、行頭云々を意識せずとも安全 (2)頭部分は「<!--」で始めるが、間違ってもその同じ行に続けてscriptを記述してはならない。必ず改行してからscriptの記述をスタートすべし ってことになりますかね? (2)は、scriptなどはコピペしかしたことのない超初心者の私は知る由もありませんでした。

その他の回答 (3)

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.4

「古いコード」をサポートすることで互換性を守っているのは「仕様」であり、 守っている対象は今でも存在している「古いコードで書かれたページ」です。 けしてもう存在しない「古いブラウザ」のためではありません。 あなたが古いコードを書くことは何も互換性を守ることにはならず、逆に未来への互換性を失います。

noname#201411
質問者

お礼

早速のご回答ありがとうございます。 「互換性」の内容を勘違い(誤解)していました。

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.3

>とにかく、javascript非対応ブラウザへの対応方としては 今どきscriptタグの中身をそのまま表示してしまうようなブラウザはありません。 <!--等がコメントになる仕様は、十年以上前の頃に有用だったもので、今は互換性のためだけに存在するものです。 今書くコードでそのような記法をしてはいけません。それは「絶対」のレベルに近いことです。 <script> プログラム </script> が、良い書き方で、本当のことを言うと外部ファイルにするのがベストです。

noname#201411
質問者

お礼

早速のご回答ありがとうございます。 javascriptのプログラムは外部ファイルにしています。それでもhtmlには、 <script> <!-- foo() //--> </script> とか、書くわけですから、問題は同じことですよね。で、貴殿の説は、この場合、いまどきコメント記号の記載なぞ不要だと仰せですよね。 >互換性のためだけに存在するものです。今書くコードでそのような記法をしてはいけません。 ↑ 上げ足をとるようですが、貴殿の論法からすると、「そのような記法をしてはいけません」となると、互換性を犠牲にすることになりますが、それでよいのでしょうか。いまどき、互換性なぞ考慮する必要はない、ということでしょうか。技術的なことはよく分かりませんが、文章上でちょっと矛盾を感じましたので・・・。

  • t_ohta
  • ベストアンサー率38% (5071/13248)
回答No.1

「-->」はJavaScriptには無い構文なのでエラーになります。 なのでJavaScript上はコメントとして扱わせ、HTML上は有効なコメント閉じタグとして認識させるための手段です。

noname#201411
質問者

お礼

早速のご回答ありがとうございます。 なるほど。「//」が"1行限りのコメント記号"の役割を果たしているわけですね。 >JavaScriptには無い構文なのでエラーになります。 ↑ ということは、頭の「<!--」はJavaScriptには有る構文なのでエラーにもならない、ということでしょうか。javascriptは、<!--は承知の上で無視するが、-->は「これはなんじゃ」と驚いたあげく無視しないでエラーと認識してしまう、ということでしょうか。

関連するQ&A

  • 2つのjavascript 統合

    javascript初心者です。お願いします。 DTD HTML 4.01 Transitionalで2つのjavascriptがあるので<HEAD>内に <script type="text/javascript"> <!-- ~~~~~ // --> </script> <script type="text/javascript"> <!-- ~~~~~ // --> </script> こんな場合に、真ん中の </script> <script type="text/javascript"> を削除して <script type="text/javascript"> <!-- ~~~~~ // --> <!-- ~~~~~ // --> </script> こんな風にしちゃっても大丈夫ですか? 動くけどやっぱダメですか? 削除して統合した方が良いですか?

  • javascriptの中でjavascriptを呼びだしたいのです。

    javascriptで質問です。 javascriptの中でjavascriptを呼びだしたいのです。 実際にやるとエラーになりますが、方法はありますでしょうか。 xが1のとき、script1.js xが2のとき、script2.js のように実行を分けたいので、このような処理を したいのですが。 何卒よろしくお願いいたします。 <script type="text/javascript"> <script type='text/javascript' src='http://www.domain.com/script1.js'></script>"; </script>

  • Javascriptで教えてください

    下記1だと実行できるのですが、2だと実行できないのはなぜでしょうか 1 <script type="text/javascript"> function OnButtonClick() { alert('クリック'); } $(function () { }) </script> 2 <script type="text/javascript"> $(function () { function OnButtonClick() { alert('クリック'); } }) </script>

  • javascriptのURL部分に引数を渡したい

    <script type="text/javascript" src="URL"></script> の URL部分に引数を渡したいのですが、どうしたらよいですか? イメージとしては、webページのどこかに <script type="text/javascript"> var keyword='キーワード'; </script> みたいにあって、次に <script type="text/javascript" src="URL&key=keyword"></script> とURLにパラメータを引数としてつけたいのです。 初心者で申し訳ありません。 どなたか教えてください。

  • javascriptファイルは1つに統合できますか

    javascript初心者のため、どなたかご教示いただけるとありがたいです。 html内に外部javascriptファイルを読み込むようにscript要素で記述しているのですが、複数の外部jsを読み込んでおり、可能であればhtml内の記述を簡略化したいと思っております。 <現状> <script type="text/javascript" src="・・・/js/jquery.js" charset="utf-8"></script> <script type="text/javascript" src="・・・/js/jquery.page-scroller.js" charset="utf-8"></script> <script type="text/javascript" src="・・/js/jquery.cookie.js"></script> <script type="text/javascript" src="・・・/js/ui.core.js"></script> <script type="text/javascript" src="・・・/js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="・・・/js/jquery.scrollfollow.js"></script> <script type="text/javascript" src="・・・/js/jquery.bxslider.js"></script> <script type="text/javascript" src="・・・/js/set_slider.js"></script> ・・・ jsに対する基礎的な質問ですが、上記のような複数の外部jsファイルを、1つの外部jsファイルにまとめることは可能なのでしょうか? (単純に1箇所にコピー&ペーストするようなイメージで) お手数ですが、ご教示のほど、宜しくお願い致します。

  • 【javascript】2つ同時に上手く動かない

    javascript初心者です。 現在作成している画面に2つのjavascriptを動かしたいと思っております。 しかしながら、一つずつでは動くのですが、同時に表示すると上手く動作しません。 いい方法などありましたらご教授お願い致します。 【htmlのヘッド】 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.coda-slider-2.0.js" charset="utf-8"></script> <script type="text/javascript" src="js/jquery.easing.1.3.js"></script> <script type="text/javascript" src="js/sm_scroll.js"></script> <script type="text/javascript" src="js/jcaption.min.js"></script> <script type="text/javascript" charset="utf-8"> $(function(){ $('#coda-slider-1').codaSlider({ autoSlide:false, autoHeight:false, autoSlideStopWhenClicked:false, autoSlideInterval:10000, firstPanelToLoad:1, dynamicArrows: false, }); }); </script> <script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="js/lightbox.js"></script> 【上部のjavascript】 Coda-Slider 参照URL:http://phpjavascriptroom.com/exp3.php?f=include/ajax/jquery_plugin_slider/coda_slider.inc&ttl=%E8%A8%AD%E7%BD%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB 【下部のjavascript】 litebox 参照URL:http://lokeshdhakar.com/projects/lightbox2/ javascript内が初期化されているのが問題なのでしょうか? 解決の方法などありませんでしょうか? 以上、宜しくお願い致します。

  • このjavascriptは何をしているのでしょうか

    <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try { var pageTracker = _gat._getTracker("UA-7994748-1"); pageTracker._trackPageview(); } catch(err) {} </script> 今の知識ではこのスクリプトがどんな処理をしているのか読めません。 (出典はcanvasとprocessing.jsのデモページのソースです) ご回答よろしくお願いします。

  • 途中のjavascriptを後で読み込ませるには?

    こんにちは 現在htmlファイルで <html> : <body> : AAAAAAAAAAAAAA AAAAAAAAAAAAAA <div> <script type="text/javascript"> <script type="text/javascript" src="http://hogehoge.com/hoge.js"></script> <noscript>ブラウザのjavascript機能をONにしてご覧ください</noscript> </div> : BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB : </body> </html> のような形のソースを入れているのですが、 これだとjavascriptのソースの読み込みが終わるまで、 次のソースをみることができません。 (実はこのjavascript部分がある動画サーバーからの埋め込みソースで、  2、3秒くらいかかってしまうのです) 1)javascriptを早く読み込む方があれば教えてください。 もしくは 2)ページを表示してからjavascript部分を読むようにするには   どうすれば良いのか教えてください。   (これだとページのあとからjavascript部分が表示されるので、    ストレスが無いので・・・) ちょっとしたアドバイスでもよいので、宜しくお願いします。

  • Javascriptの宣言文で

    javascriptの書き出しで使う <script language="Javascript">と、 <script TYPE="text/javascript" > は、 使い方で違いがあるのでしょうか?

  • このソースどういう意味ですか【JavaScript】

    <HTML> <HEAD> <TITLE>JavaScript Sample</TITLE> <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> </HEAD> <BODY> : <INPUT TYPE="button" VALUE="OK" onClick="~"> : </BODY> </HTML> このソースの中の <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript"> の部分ってどういう意味ですか? 特にTypeとHTTP-EQUIVの部分については個別で詳しく知りたいです。 回答よろしくお願いします。

専門家に質問してみよう