質問: JavaScriptの勉強をしています。 JavaScript、jqueryの行末に「;」(セミコロン)を 付けてはいけない時の判断について教えて下さい。 私の解釈では JavaScript、jqueryでは行末には「;」(セミコロン)を付ける 例外として行末に「;」(セミコロン)を付けない場合 ・条件式のブロック「{}」の行末 ・関数のスコープ「{}」の行末 と覚えていました。 ところがjqueryの勉強のために自分用に作成したサンプルのコードで 行末に「;」(セミコロン)を付けたら動作しなくなりました。 確認したところ「;」(セミコロン)なしが正常で、 「;」(セミコロン)有りが間違いのようです。 サンプルのコードの「;」(セミコロン)ついて以下の件について教えて下さい。 1)1番は関数ではないのに「;」(セミコロン)なしでも動作するのはなぜですか? =「;」(セミコロン)を付けると、どうして動作しなくなるのですか? 2-A)2番は関数がありますが、関数全体が「()」で囲われています。 こういう場合は「.done(function(data){})」全体を「.done」の関数とみなして 行末の「;」(セミコロン)をなしにするということですか? 2-B)2番は3番と同じ型ですが、3番は行末に「;」(セミコロン)があっても動作します。 **型が同じであるのになぜ3番だけ行末に「;」(セミコロン)があっても動作して、** **2番は行末に「;」(セミコロン)を付けると動作しなくなるのですか?** 3)3番は行末に「;」(セミコロン)があっても、なくても動作します。 3番の行末に「;」(セミコロン)を付けるのは任意ということで、 3番は「;」(セミコロン)付けても、付けなくてもどちらでも良いのでしょうか? 以上です。 すいませんが詳しい方、説明の上手な方JavaScript、jqueryで どういう時に行末に「;」(セミコロン)を付けると 動作しなくなるのか(=行末に「;」をつけてはいけないのか)教えて下さい。 よろしくお願いします。 ``` ``` 何度もすいません。 ここからです。 >コメント欄ではマークダウン使えませんので書いた通りには表示されません。 ご自身のコードの整形に使ってください ``` ```
回答: 1つの文を複数行にまたがって書いてもいいのをご存じないようですね。 一部の文を除いて、特に継続の印なく次の行に続きを書いてもいいのです。 1 2 3 の3行は、1つの長い文なので、その途中に ; を付けちゃ駄目です。 ; は、行の終わりでなく、文の終わりに付けます。