I am confused with javascript let and var in for loop?
这是我的循环代码
1 2 3 4
| var username = ['Sam', 'Adarsh', 'Rohit', 'Rajat'];
for(var i in username){
console.log(username[i]);
} |
它输出的结果和需要的一样,但我不知道为什么要让声明需要。我了解VaR的概念,但不确定在哪些情况下,VaR会在for循环中创建问题?
任何人请帮助我理解这个概念。我是新来的Noob,想知道:)
谢谢你的帮助。
- 该代码的问题不在于var,而在于使用for..in循环迭代数组,这是一个坏主意。
- 我只想知道在任何for循环中的let和var角色…你能给我举个例子吗?
- 既不使用,也不使用Array.forEach。
- @rajatsharma让我们在for(in)中创建块范围,因此在for(in)循环之外,您无法获取i的值
- 但是使用for .. in循环到数组是不好的用法。
使用var时:
1 2 3 4 5
| var username = ['Sam', 'Adarsh', 'Rohit', 'Rajat'];
for(var i in username){
console.log(username[i]);
}
i // 3 |
使用let时
1 2 3 4 5
| var username = ['Sam', 'Adarsh', 'Rohit', 'Rajat'];
for(let i in username){
console.log(username[i]);
}
i // Uncaught ReferenceError: i is not defined |
ES6中的let将创建块范围到功能范围
- let创建块for(in) {}扫帚在外面,你知道the for(in) {}回路,不能iget the value of。
- "以问题为基础的学习真的是无功about with for循环"……closures function is with ...which过--你能让像by about this话题……请帮助我谢谢提前
- rajatsharma is the main点@ closures not the for in. stackoverflow.com /问题/答案/ 111102 & hellip;这clearly告诉我:什么是闭包。
- 问题与使用性能的影响drastic let i in usernamehas to let i = 0; i < username.length; i++
- 但它似乎没有人关心我bothering is to和沃斯:should not be for……提collections is used for的意思,它只和does not for Property对象遍历遍历阶销担保。