2016-04-13 13 views
1

私はJavascriptとコーディングが初めてであるため、これは基本的な知識ですが、if/elseステートメントの関数にセミコロンがないにもかかわらず、この例は機能しますが、中括弧も{}です。私はあなたがif/else内に複数の条件があった場合、それらが必要であると思いました。 2つは単一の条件を持っているので、セミコロンと中括弧の両方を必要としないと理解していますが、どちらもありません。 else文には2つの条件がありますが、セミコロンや中カッコはまだありませんが、コードはまだ動作しています。どんな洞察もありがとう。Function(Javascript)のif/else文の後にセミコロンがない?何がありますか?

この他の質問(閉鎖されましたが回答 - Why is it that semicolons are not used after if/else statements?)には、あるいは{}の中でif/elseのために何らかの形でシンタックス要件が変更された場合は対処しませんでした。

http://www.javascriptkit.com/howto/show2.shtml

<script type="text/javascript"> 

//variable that will increment through the images 
var step=0 

function slideit(){ 
//if browser does not support the image object, exit. 
if (!document.images) 
    return document.getElementById('slide').src = slideimages[step].src 
if (step<2) 
    step++ 
else 
    step=0 
//call function "slideit()" every 2.5 seconds 
setTimeout("slideit()",2500) 
} 

slideit() 

</script> 
+0

ノード*が必要*です。ただし、コードを読みやすくするのに役立ちます。角括弧については、一重線スコープの周りに配置するかどうかを選択できますが、少なくとも2行が必要になるとすぐに必要になります。あなたはすでにそれらを置くことによってそれを予期することができます。 –

答えて

0

セミコロンが来ますJavaScriptのifまたはelseの後。それらは文の後にifまたはelseブロック内に属しますが、技術的にはオプションです。

ifブロックはifで始まり、一つの式または{ + 1以上の式+ }のいずれかである文ブロックが含まれています。 elseブロックは同じように動作します。

したがって、これらの全てはequivelentです:

if console.log("foo") 

if console.log("foo"); 

if 
    console.log("foo") 

if 
    console.log; 

if { console.log("foo") } 

if { console.log("foo"); } 

if { 
    console.log("foo") 
} 

if { 
    console.log("foo"); 
} 

elseブロックは同じように動作します。


JavaScriptのセミコロン(必要に応じて)には、常に価値があります。これらはオプションですが、私が今までに見たJavaScriptコードガイドラインでは、それらを使用するように指示しています。

+0

すべての応答ありがとう。まだ1つのあいまいさがあります。 else文に2つの式が含まれていないので、ブロックと見なす必要がありますか? –

+0

中かっこのない 'if'または' else'文は、_next_文にのみ影響します。 2つのステートメントを 'else'と一緒にしたい場合は、中括弧を入れる必要があります。セミコロンはこれとは無関係です。だからあなたのコメントの質問への答えはyesです:2つの式を持つelse文はブロックとみなされ、_must_は中括弧を持ちます。 – MrHen

+0

もう一度おねがいしますが、私が間違っていない限り、上記のelse文には2つの式があり、Chromeではまだ動作しています。これは技術的にはこれの1つですか? - それは実際の練習ではありませんが、それは怠惰なものですか? –

関連する問題