有必要在循环中声明局部变量吗?

Necessary to declare local variables in a loop?

我发现以下工作正常:

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

并且在没有事先声明 _next 的情况下,如果我声明变量 while ((let _next = itr.next()) ....

,traceur 实际上会抛出一个意外的关键字错误

这是 ECMAScript 6 吗?

while ((let _next = itr.next()) ...Is this ECMAScript 6?

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

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

或者只是

for (let … of itr) {
    …
}