- ベストアンサー
JavaScriptの書き方について迷っています
- 質問者はJavaScriptの書き方について迷っており、本によって異なる書き方があることに困惑しています。
- 質問者は<script>タグでのJavaScript宣言の書き方についても疑問を持っており、どちらが正式な書き方なのか知りたいと思っています。
- また、質問者は古いブラウザに対するコメント扱いの書き方についても疑問を持っており、最近の本ではそれに触れられていないことに疑問を抱いています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#3 です。 コメントは被ってないと書きましたが、被ってましたね…。OTL > また、初心者が勉強しやすいJavaScriptの本があったら教えて下さい。 私が所有しているJavaScript書籍の中では、script要素内のコメントについて正しく書かれている書籍は『JavaScript 第5版』だけでした。 ただ、かなり人を選びます。とても詳しく説明されているため、読んでいく内に疑問が増えていくかも知れません。 気合いを入れて読めるのであれば、『JavaScript 第5版』が鉄板であることは保証できます。 http://www.amazon.co.jp/dp/4873113296 『JavaScript 第5版』ほど詳しくはありませんが、勉強しやすいのはおそらく『DOM Scripting 標準ガイドブック』の方です。 私は基本的にJavaScript初心者にはこちらをお勧めしています。 http://www.amazon.co.jp/dp/4839922373 HTML は別に参考書を購入することをお勧めしますが、私はWebで得た情報量が圧倒的に多いので残念ながらお勧めできる参考書はありません…。 HTML も JavaScript も読みやすい参考書は間違っている事が多く、正確な参考書は詳しすぎて初心者向きではないことが多いので「読みやすい参考書」となると候補がほとんどないのが正直なところです。 (『JavaScript 第5版』は読みやすい本だと思いますが、初心者からすると文章量が多いことが「読みにくい」と感じるようなので。) 正しい書き方が気になるならどこかで「詳しい参考書」を読む覚悟が必要だと思います。あるいは、仕様書を読むことですね。
その他の回答 (4)
- shiren2
- ベストアンサー率47% (139/295)
>初心者が勉強しやすいJavaScriptの本があったら… 少し古いですが「JavaScript中級講座」は解り易くて良い本ですね。 http://www.amazon.co.jp/dp/4774132349/ その本からの抜粋です。 ・JavaScript部分をコメントにする ただ現在では、JavaScriptに対応していないWebブラウザは、パソコンの世界ではほとんど使われていません。例えば、Internet Explorerだとバージョン 3.0(1996年リリース)の時点でJavaScriptに対応しています。したがって、JavaScript部分をコメント化することは、現在ではさほど考慮しなくても良くなっています。 ・language属性を指定する 昔のHTML(HTML 4.0より前)では、リスト1.6のようにscriptタグにlanguage属性をつける書き方が取られていました。一方、HTML 4.0以降ではlanguage属性は推奨されておらず、type属性を代わりに使います。
お礼
ご紹介頂いた本は私のような初心者には分かりやすそうですね。 しっかり勉強させて頂きます。 ありがとうございました。
- think49
- ベストアンサー率59% (285/482)
まとめに時間をかけ過ぎて babu_baboo さんに先を越され…。コメントに関する情報は被ってないので書いてしまおうw --------------- <!-- HTML4 の場合 (1) --> <script type="text/javascript"><!-- alert('Hello, World!'); //--></script> <!-- HTML4 の場合 (2) --> <script type="text/javascript"> alert('Hello, World!'); </script> <!-- HTML5 の場合 (1) --> <script><!-- alert('Hello, World!'); --></script> <!-- HTML5 の場合 (2) --> <script> alert('Hello, World!'); </script> --------------- HTML4 ではtype属性が必須であり、language属性は非推奨です。 type属性に対応せずlanguage属性に対応するブラウザ(Netscape)のために <script type="text/javascript" language="JavaScript"> と書いていた時期がありましたが、Netscape は開発終了しFirefoxに引き継がれたので現在ではlanguage属性を併記することはまずありません。 http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/scripts.html#h-18.2 HTML4 ではscript要素初めの "<!--" を含む行を行末までは読み飛ばしますが、"-->" を読み飛ばすことは出来ないので "//" でコメントアウトしています。 http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/scripts.html#h-18.3.2 HTML5 でもtype属性が必須ですが、"text/javascript" に限っては省略して構いません。(デフォルトのフォーマットが "text/javascript" なため) このため、<meta http-equiv="Content-Script-Type" content="text/javascript"> も HTML5 では存在しません。 HTML5 では "-->" も読み飛ばすことが可能です。 http://www.html5.jp/tag/elements/script.html http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#script 最近、コメントを使わない記述が流行っているのは現在ではscript要素に対応しないブラウザがまずないためだと思います。 http://d.hatena.ne.jp/os0x/20100812/1281623274 私はサンプルコードでは省略することがありますが、念のためコメントも書くことにしています。正解はないと思うので、ご自身で判断してください。 コメントを書く場合にはコメント内に "--" を含むことが出来ない点に注意してください。 script要素を解釈できるブラウザは "--" を書くことが出来ますが、解釈できないブラウザはコメントの文法規則に縛られます。 http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/intro/sgmltut.html#h-3.2.4 http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#comments ありがちなのはデクリメント。 for (var i = 10; i; i--) { // デクリメントで "--" を使用してしまっている alert(i); } i-- の代わりに i- = 1 で代替するのがベターです。 あまり機会はありませんが、文字列リテラルでも注意する必要があります。(innerHTML でコメントを挿入する時など) var str1 = "--"; // NG var str2 = "\u002D\u002D"; // OK (Unicodeエスケープシーケンス) var str3 = "-" + "-"; // OK (加法演算子で "--" を分解する)
お礼
詳しくご返答頂きありがとうございました。 ご紹介頂いた各サイトはこれからしっかり読ませて頂きます。(理解するには相当時間が必要みたいですが・・・)
- babu_baboo
- ベストアンサー率51% (268/525)
http://www39.atwiki.jp/eriax/pub/html/memo-html1.html ここが、ひつようかつ、じゅうぶんなじょうほうをていきょうしています。 > ここのカテゴリーは一応、技術者向け えっ?! わたし、ぎじゅつしゃないのですが、いまさらながら だいじょうぶですよね ^^;
お礼
分かりやすいサイトをご紹介頂きありがとうございました。 これからしっかり読んで勉強します。
- 0909union
- ベストアンサー率39% (325/818)
ここのカテゴリーは一応、技術者向けなんですが。 と言うことで、素人向けには代表して回答。 >どちらでも良いと言う事なのでしょうか。 使用しているブラウザによっては、その通りです。 しかしちゃんと意味があり、ブラウザなどの動作も(ブラウザのバージョンによっても違う)、正確にフォーマットやオブジェクト、メソッドなど動作しない場合もあります。 違いはJavaScriptのバージョンの違いです。この辺もちゃんとHTMLやJavaSciptの教則本にのっているんですがね。書いて無かったですか。だったとしたら、よくない本を選んでしまいましたね。 V1.2以降は"text/javascript"となります。HTML4に対応した物です。XML(SGML)風になってきたと言えますね。 自分はHTML、JavaScript, CSSで何のバージョンを使用して書いているかちゃんと認識してください。それに対応していないブラウザや、ちょっと違う動作するブラウザがあるので、必須で対応状況を知っておく必要があります。 例えばIEでは、ヘッダーのDOCTYPEで動作が切り替わります。 >そんなに古いブラウザを使っている人がいないから書かなくても良 もし、そうだとしたらそのように記述している読み物は間違っています。基本的に書かなくても問題はありません。なので、記述を省略しているのでしょう。中には使用をブラウザの設定でOffしている方もいます(いまさらなんですがね。頑固な人がいるんですよ)。 >一応、<noscript></noscript>は入れていますが もちろん、これだけ入れておいてもいいですが、エラーになると表示の組み合わせ(順番)によっては意味がありません。 >初心者が勉強しやすいJavaScriptの本があったら教えて下さい 記述内容を見る限り、初心者の本を読むより、ちゃんと自分で内容を確認して中級以上の物を買いましょう。JavaScriptだと中間の本はなく、上級者なんですが、今回の質問内容の事をちゃんと記述されている本を探せばいいだけです。 自分の知っているメソッドなど、今回私が注意した事など、ちゃんとどのようにきじゅつされているか確認してみましょう。 世の中で他人が薦めた本で、100%納得する本にであるのは、結婚相手に出会うのと同じくらい、奇跡的なことです。
お礼
JavaScriptのヴァージョンは意識した事は無かったです。本に書いているヤツを意味も分からずコピペしていただけですからね。 一応XHTMLは1.0でCSSは2.0で書いていました。 参考書は本屋さんで探してみます。 ありがとうございました。
お礼
やっぱりWebで探して勉強するのが、効率的なんですかね。 ご紹介頂いた本は早速購入致します。 ありがとうございました。