0

我发现以下工作正常:

while ((_next = itr.next()) && !_next.done) {
    ...
}

并且没有任何事先声明_next,如果我声明变量,traceur 实际上会引发意外的关键字错误while ((let _next = itr.next()) ...

这是 ECMAScript 6 吗?

4

1 回答 1

1

while ((let _next = itr.next()) ...这是 ECMAScript 6 吗?

while,语句必须包含表达式,而不是变量声明。无论如何,分组运算符内的变量声明都是无效的。自 ES5 以来,这一点没有改变。
采用

var _next;
while ((_next = itr.next()) && !_next.done) {
    …
}

要不就

for (let … of itr) {
    …
}
于 2015-04-02T15:37:30.613 回答