有必要在循环中声明局部变量吗?
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) {
…
}
我发现以下工作正常:
while ((_next = itr.next()) && !_next.done) {
...
}
并且在没有事先声明 _next
的情况下,如果我声明变量 while ((let _next = itr.next()) ...
.
这是 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) {
…
}