Javascript `var`语句中的逗号是逗号运算符的一个示例吗?

Javascript `var`语句中的逗号是逗号运算符的一个示例吗?,javascript,syntax,Javascript,Syntax,或者在const或let语句中 例如,在该语句中,const a=0,b=1,等效代码(完全相同的效果)为: const a = 0; const b = 1; 但是,我说那句话中的逗号不是正确的吗?因为如果它是逗号运算符,那么常数a=0,b=1应等于: a = 0; // This already would throw a ReferenceError in strict mode const b = 1; 类似地,var a、b、c应为a;Bvar c如果该逗号确实是逗号运算符,但其效

或者在
const
let
语句中

例如,在该语句中,
const a=0,b=1,等效代码(完全相同的效果)为:

const a = 0;
const b = 1;
但是,我说那句话中的逗号不是正确的吗?因为如果它是逗号运算符,那么常数a=0,b=1应等于:

a = 0; // This already would throw a ReferenceError in strict mode
const b = 1;
类似地,
var a、b、c应为
a;Bvar c
如果该逗号确实是逗号运算符,但其效果是
var a;var b;var c

我的推理正确吗,还是我误解了逗号运算符?我问这个问题是因为我看过多篇文章给出了类似
vari=0,j=9
作为逗号运算符的示例(最后一个来自MDN页面),但我认为它是一个不同的逗号,就像函数参数和数组中的逗号不同于逗号运算符一样


它是否是逗号运算符的一个示例?

逗号在很多地方都使用:

  • 表达式:
    (x,y)+1
  • 声明声明:
    让x,y
  • 函数参数:
    foo(1,2,3)
  • 数组/对象初始值设定项:
    [1,2,3]
  • 分解模式
    [x,y]=a
其中,只有第一个是逗号运算符,其他的是。。。好吧,就用逗号吧(尽管有时他们会用一个别致的名字“elision”)


对于
let/const
语句,语法如下:

No,它不是。它是声明语法的一部分,而不是表达式语法。为了使逗号成为表达式逗号,必须将初始化表达式括在括号中;同样:“请注意,赋值(如var语句)中的逗号可能看起来没有逗号运算符的正常效果,因为它们不存在于表达式中。在下面的示例中,a的值设置为b=3(即3),但c=4表达式仍会求值并将其结果返回到控制台(即4)。这是由于运算符优先级和关联性。“谢谢,这就澄清了问题。Bergi的链接中的最上面的答案还提到了注释ES5参考:,我不知道。还有
let
:“Elision”是表示省略数组元素的逗号或逗号序列的语法产物;通常调用逗号省略是错误的,一个省略可以由多个逗号组成。