以下 spinet 是有效的 JS:
var foo;
if (foo = true, foo) {
}
但这一个不是:
if ((var foo = true), foo) {
}
为什么?
最佳答案
那是因为
foo = true
是 AssignmentExpression ,这是一个 Expression ,这样你就可以将它包裹在 ParenthesizedExpression 中:
<i>ParenthesizedExpression</i><sub>[Yield]</sub>: <b>(</b><i>Expression</i><sub>[In, ?Yield]</sub><b>)</b>
但是
var foo = true
是VariableStatement ,这是 Statement ,不是表达式。
关于javascript - 为什么 "var"关键字不能与逗号运算符一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40599744/