这个只能输出10,什么原因呢?
这道题,想让它输出的值为1到10有几种改写方法?什么原理?
for(var i=1; i<10; i++){
setTimeout(()=>{
console.log(i)
},1000)
}
这个只能输出10,什么原因呢?
这道题,想让它输出的值为1到10有几种改写方法?什么原理?
for(var i=1; i<10; i++){
setTimeout(()=>{
console.log(i)
},1000)
}
`
for(var i=1; i<10; i++){
setTimeout(console.log,1000, i);
}
for(var i=1; i<10; i++){
const j = i;
setTimeout(()=>{
console.log(j)
},1000)
}
`
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
这不就是考let和var的区别:
js虽然没提到域的感念,但确实存在,一个大括号就是一个作用域,var会生成一个全局的变量i,每次遍历都会重置i的值,let则会在相应的作用域生成唯一的i,保留当前执行的值,反正let的出现用的最多的地方就是这儿0.0