或者为此,在const
或let
语句中。
例如,在此语句const a = 0, b = 1;
中,等效代码(效果完全相同)为:
const a = 0;
const b = 1;
但是,我是否可以说该语句中的逗号不是comma operator?因为如果它是逗号运算符,那么const a = 0, b = 1
应该等效于:
a = 0; // This already would throw a ReferenceError in strict mode
const b = 1;
类似地,如果该逗号确实是逗号运算符,则var a, b, c;
应该是a; b; var c;
,但是其效果是var a; var b; var c;
。
我的推理正确吗,还是我误解了逗号运算符?我之所以这样问,是因为我已经看到多篇文章提供了类似var i = 0, j = 9;
这样的语句作为逗号运算符的示例(最后一个来自MDN页面),但是我认为这是一个不同的逗号,与逗号相同函数中的参数和数组不同于逗号运算符。
是不是逗号运算符的示例?
答案 0 :(得分:1)
逗号在很多地方都使用过:
(x, y) + 1
let x, y
foo(1,2,3)
[1,2,3]
[x, y] = a
在这些变量中,只有第一个是逗号运算符,其他的则是...好吧,只是逗号(尽管有时它们的名字叫“ elision”)。
对于let/const
语句,语法如下:http://www.ecma-international.org/ecma-262/8.0/#sec-let-and-const-declarations