Javascript 想知道一步一步的for循环过程,其中包括let和var
我有两个关于for循环的简单代码片段,分别涉及let和var。 使用let声明变量的第一个代码Javascript 想知道一步一步的for循环过程,其中包括let和var,javascript,ecmascript-6,var,let,Javascript,Ecmascript 6,Var,Let,我有两个关于for循环的简单代码片段,分别涉及let和var。 使用let声明变量的第一个代码 for (let i = 0; i < 10; i++) { setTimeout(function() { console.log(i); }, 1000); } for(设i=0;i
for (let i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 1000);
}
for(设i=0;i<10;i++){
setTimeout(函数(){
控制台日志(i);
}, 1000);
}
所以它会像这样显示o/p
0123456789
for (var i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 1000);
}
0123456789
但是如果我用这样的var替换let
0123456789
for (var i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 1000);
}
for(变量i=0;i<10;i++){
setTimeout(函数(){
控制台日志(i);
}, 1000);
}
它将打印10次。
我知道这与功能级范围和块级范围有关,但我想清楚地了解一步一步执行的过程
提前感谢。之所以只打印
9
,是因为回调函数是在循环完成后执行的。这意味着i
是9
你可以:
如果您试图在1秒后打印1-10,可以在回调函数中循环。比如:
setTimeout(函数(){
对于(var i=0;i<10;i++){//将循环放入setTimeout db函数中。
控制台日志(i);
}
}, 1000);代码>