Open openks opened 7 years ago
看了知乎上的解释算是了解了
for( let i = 0; i< 5; i++) 这句话的圆括号之间,有一个隐藏的作用域 for( let i = 0; i< 5; i++) { 循环体 } 在每次执行循环体之前,JS 引擎会把 i 在循环体的上下文中重新声明及初始化一次。
MDN上的例子是这样的
var list = document.getElementById("list");
for (let i = 1; i <= 5; i++) {
var item = document.createElement("LI");
item.appendChild(document.createTextNode("Item " + i));
let j = i;//这里是重点
item.onclick = function (ev) {
console.log("Item " + j + " is clicked.");
};
list.appendChild(item);
}
按我的理解应该是在大括号作用域里重新声明了一个变量i,只不过这个i和括号里的i一样罢了
从各个地方了解到的let知识如下: