if 文のルールを思い出せなかったので、12.5 節を見ましたが、中括弧が必要かどうかはまだわかりませんでした。では、Ecmascript 5.1 のどこで、if ステートメントで左中括弧を使用できないと言及されているのでしょうか?
質問する
231 次
1 に答える
5
セクション 12.5 にある if ステートメントの構文は次のとおりです。
IfStatement : if (式)ステートメントelseステートメント if (式)ステートメント
見た目からは中括弧は必要ありませんが、ステートメントが正確に何であるかを明確にする必要があります。この構文は、セクション 12 にあります。
声明 : ブロック 変数ステートメント 空のステートメント 式ステートメント Ifステートメント 反復ステートメント 続行ステートメント Breakステートメント 返品明細書 Withステートメント Labelledステートメント Switchステートメント スローステートメント TryStatement Debuggerステートメント
セクション 12.1 をもう少し掘り下げると、ブロック ステートメントの定義が見つかります。
ブロック : { StatementList opt }
中括弧を見つけましたが、これは必須ということですか? 答えはノーだ。ステートメントの構文を調べると、コロンに続く各要素はステートメントと見なされるため、if ステートメント構文の有効な部分と見なされます。以下は、有効な if ステートメントの実際の例です。
// if ( Expression ) ReturnStatement
if (true)
return false;
// if ( Expression ) Block
if (true) {
return false;
}
// if ( Expression ) TryStatement
if (true) try {
return false;
} catch (e) {
return e;
}
// if ( Expression ) EmptyStatement
if (true) ;
// if ( Expression ) IfStatement
if (true)
if (false)
return false;
于 2012-08-24T05:02:58.653 に答える