if (numStr[0] === '-') { result = negativeNum(numStr); } else { for (let i = length(numStr) - 1; i >= 0; i -= 1) { result += numStr[i]; } }
Ответ
Если обратиться к спецификации, конструкция if имеет следующий вид
if ( Expression ) Statement else Statement
В свою очередь Statement может быть следующими конструкциями:
Statement:
BlockStatement
VariableStatement
EmptyStatement
ExpressionStatement
IfStatement
BreakableStatement
ContinueStatement
BreakStatement
ReturnStatement
WithStatement
LabelledStatement
ThrowStatement
TryStatement
DebuggerStatement
В этом списке интересен BreakableStatement
BreakableStatement:
IterationStatement
SwitchStatement
Который в итоге приводит нас к циклам
IterationStatement:
...
for(LexicalDeclaration Expression; Expression) Statement
...
Отсюда видно, что размещение цикла внутри любой из ветвей условного оператора вполне допустимо.
Комментариев нет:
Отправить комментарий