• ベストアンサー

javascriptを勉強しているのですが。

毎日こつこつと参考書を見ながらjavascriptを勉強しています。サイトのソースを見て勉強する方法を最近しているのですが、壁に当たってしまったようなので質問させていただきました。 function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } 質問1:上記のようなスクリプトを見かけたのですが、最初のif文には{}があるのですが、if(!d.MM_p) d.MM_p=new Array();と for(i=0;i<a.length; i++)の部分では{}が見あたらないのですがなぜでしょうか。 if文をしよう使用する場合には{}を使うと参考書に書いてありましたが、これには記述されていないのですが、普通に使用できているようなのですがなぜでしょうか。 質問2://v3.0とは何かのバージョンを示しているのでしょうか。 初歩的な質問で申し訳ありませんが、1つでもいいのでどなたかアドバイスをお願いします。

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

  • ベストアンサー
  • VCAT
  • ベストアンサー率20% (16/79)
回答No.3

そのプログラミングは市販のソフトで書いたものです。 非常に難解な書き方をしているのが特徴で、普通あま り勉強の役にはたちません。2,3行で書けるような ことを14、5行くらいにして書いたりしているから です。 ネットで勉強するのは手軽ですが、信頼できるものは ほとんどないといってよいです。 なので、わからないうちにネットのプログラミングに 慣れると変な癖がついてしまったりします。

その他の回答 (2)

  • auty
  • ベストアンサー率58% (284/486)
回答No.2

質問1:について。 より正確に言うと、if文、for文の次に書くのは、1つの文です。 ・ 普通、この1つの文は、ブロック{}が使われます。 ・ ブロックではなく、1つの文が使われたのが if(!d.MM_p) d.MM_p=new Array(); であり for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];} です。下の場合、 if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];} が、1つの文となっていてこれがループで繰り返されます。 なお、この説明は if文にelseのないときのものです。

  • 15mm
  • ベストアンサー率65% (65/100)
回答No.1

{}の記号は、処理をいくつかまとめたいときに使うものと考えると納得行くと思います。 つまり、if()やfor()などの中の処理が一つしかない場合は{}でまとめなくてもいいということです。 ちなみに私は分かりやすくするために何でもかんでも{}付けてますけどね^^; 「v3.0」のほうは・・・ //の後なのでコメントなわけですから、 それが何を表しているかは完全に言い当てるのは難しいでしょうね。 何かのメモで、作者以外にはわからない場合もあるでしょうし。 まぁ仰るとおり大抵はバージョンのvでしょうね。 そのスクリプトが他人に二次利用してもらうものとして作ったのであれば、 配布した後に改良があった場合には「新しくなった」と伝えなければなりませんから そんな感じのものでしょう。

関連するQ&A