Why does this JavaScript assignment not raise an error: const a = (1, 2, 3, 4);

Why does this JavaScript assignment not raise an error: const a = (1, 2, 3, 4);

const a = (1, 2, 3, 4);
console.log(a);

const b = 1, 2, 3, 4;
console.log(b);

在上面的示例中,a 将被分配值 4,而第二行将引发错误。为什么第一个任务“成功”。为什么它是有效的 JS 语法?

逗号运算符 returns 列出的最后一个表达式。它适用于第一种情况,因为它被加括号并作为单个表达式进行解析。然而,一旦有效表达式在 = 之后完成 - 在第二种情况下,1 - 并且下一个标记是逗号,JavaScripts 期望声明另一个标识符,因此您可以像这样声明多个变量:

let a = 1, b = 2;