• ベストアンサー

javascriptのif文の書き方で。これは参考書の間違い?

javascriptのif文の書き方で。これは参考書の間違い? 画像におけるif文は、下記のように、 中カッコを使って、 書かれるべきなのではないでしょうか? if(条件式){ //実行するコード }

この投稿のマルチメディアは削除されているためご覧いただけません。

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

  • ベストアンサー
  • think49
  • ベストアンサー率59% (285/482)
回答No.1

{} (括弧) は省略することも出来ます。 ですので、テキストが間違っているわけではないのですが、「視認性を踏まえて、省略しない方がよい」と主張する人もいます。 括弧の省略は、ショートコーディングを目指す方によく見られますね。 他の人が書くコードを読むときもあるので、いい機会だと思って調べてみました。 http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/12_Statements.html#section-12.1 「ECMA-262 3rd Edition」にると、括弧が省略されると、一つの Statement が実行されるようです。 つまり、 var foo = 'foo'; if(!foo) alert('test'); alert('test2'); これは alert('test2'); が実行されます。 一つのStatementだけを実行するためか、 var foo = 'foo'; if(!foo) alert('test'); alert('test2'); と書いたコードをよく見ますね。

march4
質問者

お礼

ごめんなさい、さらによく分からなくなってしまいました。。。 中カッコが省略できることは知っているのですが、 それは、条件がTrueのときに実行するコードが1文(それとも1行?)である場合、 のように記憶しています。 さらに、その場合、 if(条件式) 実行コード というように、1行に収めないとダメだったように思ったのですが、 これは勘違いだったでしょうか。(他の言語と混同している可能性あり) 例として挙げて頂いた、 if(!foo) alert('test'); alert('test2'); については、 >これは alert('test2'); が実行されます。 とありましたが、この場合、 testの方は、アラートされないことになるのでしょうか? また、 if(!foo) alert('test'); alert('test2'); との違いは、どこにあることになりますでしょうか?

march4
質問者

補足

すみません、分かりました。 !foo の、! を見落としていました。 http://www.site-cooler.com/kwl/jslibrary/6.htm#Abbreviation ここを見て、理解が深まりました。 つまり、参考書のif文では、break;一文が、if文で実行されるコードですよ、 ということなんですね。 それは、中カッコが省略されていることで理解できるわけなんですね。 いやはや、分かりにくかったですが、問題解決です。