• ベストアンサー

for文について

以下のfor文について質問致します。 <script type="text/javascript"> for(i = 10; i; i--){ document.write(i+"<br>"); } </script> 条件式の部分がi>0ならわかるのですが、ただiと書いただけで 10回繰り返しが起こるのはどうしてでしょうか?

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

条件式(≒boolean型)を書くべき場所では、そこに書かれているものをboolean型(true/false)に型変換します。 例の i であれば数値型ですので +0, -0, NaN ならば結果は false; そうでなければ true となります。 要は値が10~1の間はtrueで実行され、、0 になった時に false となりループが終了するわけです。 詳しくは参考URLを見てもらうとして、空文字列:'' や、Object:null も同様にfalseとして扱われます。 http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/9_Type_Conversion.html#section-9.2

shoshosho
質問者

お礼

詳しいご説明ありがとうございます^^ おかげさまでよく理解できました。 参考URLも参考になりました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Redpython
  • ベストアンサー率56% (9/16)
回答No.3

こんにちは。 var i = 0; if (i) {   alert("OK"); } else {   alert("NG"); } どっちが出ると思いますか? それと同じ事です。

shoshosho
質問者

お礼

こんにちは^^ご回答ありがとうございます。 この場合はNGがでるみたいですね。 0のときはfalseになるということをすっかり忘れていました^^;

すると、全ての回答が全文表示されます。
  • k-pix
  • ベストアンサー率51% (50/98)
回答No.1

(数値) != 0 の時、その論理値は true (数値) == 0 の時、その論理値は false として扱われます。 i という条件式は、i != 0 と等価です。

shoshosho
質問者

お礼

ご回答ありがとうございました^^ なるほど0のときはfalseになるんですね。

すると、全ての回答が全文表示されます。

関連するQ&A