有人可以向我解释为什么for,while,do-while语句的语法定义标题中的条件部分是“表达式”,有人可以解释一下下面的意思
Expression[In, Yield, Await] :
AssignmentExpression[?In, ?Yield, ?Await]
Expression[?In, ?Yield, ?Await] , AssignmentExpression[?In, ?Yield, ?Await]
如您所见,在非终端之后的右侧没有文字,但仍然可以在 a 的标题中写入文字 Expression[In, Yield, Await] :
for-statement, while-statement, do-while statement
for (var i = 0; null; i ++) {
/* ^^^^ */
/* null */
}
while (null) {
/* ^^^^ */
/* null */
}
do {} while (null) ;
/* ^^^^ */
/* null */
即使在非终端的右侧不存在FunctionExpression,也可以在这些语句的标题中编写函数表达式 Expression[In, Yield, Await] :
for (var i = 0; function () {}; i ++) ;
/* ^^^^^^^^^^^^^^ */
/* functionExpr */
while (function () {}) ;
/* ^^^^^^^^^^^^^^ */
/* functionExpr */
do ; while (function () {}) ;
/* ^^^^^^^^^^^^^^ */
/* functionExpr */