Javascript 为什么会有";var";关键字can';不能与逗号运算符一起使用吗?

Javascript 为什么会有";var";关键字can';不能与逗号运算符一起使用吗?,javascript,Javascript,以下spinet是有效的JS: var foo; if (foo = true, foo) { } 但这不是: if ((var foo = true), foo) { } 为什么?那是因为 foo = true 是,它是,因此可以将其包装在: 是一个,它是一个,不是一个表达式。那是因为 foo = true 是,它是,因此可以将其包装在: 是一个,它是一个,不是一个表达式。var在那里无效-它是Javascript语法的一部分,因为if条件需要是一个表达式,而不是一个语句。无法将var

以下spinet是有效的JS:

var foo;
if (foo = true, foo) {
}
但这不是:

if ((var foo = true), foo) {
}
为什么?那是因为

foo = true
是,它是,因此可以将其包装在:

是一个,它是一个,不是一个表达式。

那是因为

foo = true
是,它是,因此可以将其包装在:


是一个,它是一个,不是一个表达式。

var
在那里无效-它是Javascript语法的一部分,因为
if
条件需要是一个表达式,而不是一个语句。无法将
var
声明放入表达式上下文。与ES6无关。它只是普通的普通JS。用括号括住Javascript中的任何内容都会告诉JS引擎,所包含的语句应该作为表达式进行计算。变量声明在表达式中无效
var
在表达式中无效-这是Javascript语法的一部分,因为
if
条件需要是表达式,而不是语句。无法将
var
声明放入表达式上下文。与ES6无关。它只是普通的普通JS。用括号括住Javascript中的任何内容都会告诉JS引擎,所包含的语句应该作为表达式进行计算。变量声明在表达式中无效
var foo = true