TypeError:如果运行ES6代码,则在Firebug控制台中重新声明let错误

时间:2016-04-04 08:54:19

标签: javascript ecmascript-6 ecmascript-harmony

我正在学习ES6,请耐心等待。

以下是运行正常的代码,如果我单击运行按钮一次,但在第二次点击时它会开始显示TypeError: redeclaration of let myArr错误。

让我知道这种奇怪的(可能不是)行为。

let myArr = [34,45,67,2,67,1,5,90];
let evenArr = [];
let oddArr = [];
myArr.forEach(x => {
    if (x % 2 === 0) {
        evenArr.push(x);
    } else {
        oddArr.push(x);
    }
});

console.log(evenArr);
console.log(oddArr);

错误 -

redelaration of let error

1 个答案:

答案 0 :(得分:9)

ES6 does not allow你这样做(在同一范围内重新声明一个块范围的变量):

let foo;
let foo;

由于控制台保持状态直到你重新加载页面(毕竟你在页面的上下文中),第一次运行它时你定义myArr所以你不能在第二次运行时重新定义它。