如何在for循环中混合let和var?

时间:2018-02-19 13:04:48

标签: javascript ecmascript-6

我正在使用for循环,其中一个变量必须经过循环才能存活。在这种情况下是否可以使用let - 它似乎不起作用。

for (var data=[],let i=0; i<1000; ++i) {
    // Do something here that populates the data variable.
}

或者我应该像这样在循环之外初始化数据变量:

var data = [];
for (let i=0; i<1000; ++i) {
    // Do something here that populates the data variable.
}

2 个答案:

答案 0 :(得分:1)

是的,你应该在循环之外声明另一个变量 - 而不是var

&#13;
&#13;
let data = [];
for (let i = 0; i < 1000; ++i) {
    data.push(i);
}
console.log(data);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您只能在声明中使用一个声明"SgxEpoch": ""diff --suppress-common-lines -y original generated | grep -E '^\s*"SgxEpoch"\s*:\s*"0*"' var甚至通常在for-loop之外

let

const

这就是为什么你的第二个片段更有意义

var data = [], i = 0;

如果在for-loop内联中将let data = [], i = 0; 声明为let data = []; //make it var if it needs a function-wide scope for (let i=0; i<1000; ++i) { // Do something here that populates the data variable. } ,则无法在

之外访问data
let