しかし、なぜそれを使うのは良い考えではないのでしょうか?
維持するのが大変だからです。
正式なドキュメントが見つからないのはなぜですか? それは仕様と標準の一部ではありませんか?
もちろんそうです。§12.5 -if
ステートメントと§12 -仕様のステートメントを参照してください。an の本体はif
Statementです。ステートメントの 1 つはブロック( §12.1 ) で、ステートメントのリストを 1 つのステートメントとして扱うことができますが、他にも多くの種類のステートメントがあります。
広く支持されていませんか?
普遍的に。
縮小すると、その構文を使用してコードが壊れる可能性があるという理由だけですか?
優れたミニファイヤは、その構文を壊しません。(実際、優れたミニファイヤはそれを利用します。)
if ブロックの内容を定義するものは何ですか? インデントベースですか?
ステートメントの本体は、if
それに続くステートメントのみで構成され、インデントは JavaScript では意味がありません。したがって、これらはすべて同等です。
if (foo)
bar();
charlie();
if (foo) bar();
charlie();
if (foo)
bar(); charlie();
if (foo)
bar();
charlie();
上記では、への呼び出しのみbar
が条件付きfoo
です。charlie
関係なく呼び出されます。
そのため、ブロック (ブロック、あなたは :-) と言うかもしれません) として扱われるステートメントのリストを導入するステートメントであるBlockを持っています:
if (foo) {
bar();
}
charlie();
if (foo) { bar(); }
charlie();
if (foo) {
bar(); } charlie();
if (foo)
{ bar(); }
charlie();
ただし、インデントは人間にとって重要であるため、一貫したインデントを維持することをお勧めします。上記のそれぞれの最初の例は、(リストされているものの中で) 私たち単なる人間にとっておそらく最も明確です。:-)
if
別の注意として、PHP のステートメントのこの構文に似たものはありますか?
私は大きな PHP ヘッドではありませんが、Control Structures -if
で定義されているように見えます。ありとなしの例があります{}
。(ここでは説明しませんが、別の代替構文もあります。)
そのようなブロックは、JS と PHP の両方で、同様にif
持つことをサポートしていますか?else
はい、ブロックの有無にかかわらずif
サポートします。else