在哪裏以及如何聲明循環中使用的新變量?ES6在循環之前或循環中聲明變量
答:
const map = new Map(Object.entries(columns));
let cols;
for (let [key, value] of map)
{
cols = value.split('|');
//...
}
B:
const map = new Map(Object.entries(columns));
for (let [key, value] of map)
{
let cols = value.split('|');
//...
}
C:
const map = new Map(Object.entries(columns));
var cols;
for (let [key, value] of map)
{
cols = value.split('|');
//...
}
大概是A或B,因爲大家都說咱們是新的變種,但有什麼區別A和B?
編輯:
變量cols將僅用於內部for。我想知道是否有一些問題,如果變量在循環內初始化(例如100次)。所以我想知道它是否應該在循環外初始化。 (A或B的例子)
The purpose is not to get access outside loop, but prevent (for example) 100 initialization variable cols inside loop (because let is used inside loop - case B).
您應該始終使用盡可能最窄的範圍,例如B. – ftor
「*大家都說let是新的var *」 - 用一支沒有任何資格的棍棒擊敗每個人。 – Bergi
「*防止循環內的100個初始化變量cols *」 - 這是編譯器的工作。你不需要也不應該這樣做。 – Bergi