以下spinet是有效的JS:
var foo;
if (foo = true, foo) {
}
但这不是:
if ((var foo = true), foo) {
}
为什么?
答案 0 :(得分:5)
那是因为
foo = true
是AssignmentExpression,是Expression,因此您可以将其包含在ParenthesizedExpression内:
ParenthesizedExpression[Yield]: (Expression[In, ?Yield])
但是
var foo = true
是VariableStatement,是Statement,而不是表达式。