写代码啦
《JS 函数的执行时机》
回复数(0) 浏览数(23)
{{topic.upvote_count || 0}} 编辑 回复

1 为什么如下代码会打印 6 个 6

let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}

答:setTimeout表示等一会执行,当for循环执行完,此时i的值为6,然后再执行console.log(i)执行六遍打印出6个6.

2 写出让上面代码打印 0、1、2、3、4、5 的方法
for(let i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
因为每次循环都会把i复制一份,留在这个空间,等for循环结束,执行console。log(i)语句就会依次打印出0,1,2,3,4,5

3 除了使用 for let 配合,还有什么其他方法可以打印出 0、1、2、3、4、5.

方法一:
function arr(num){console.log(num)};
var array = [0,,1,2,3,4,5,];
array.forEach(arr);
方法二:
let n=0
let step=()=>{
console.log(n)
if(n<5){
n+=1;
step();
}
}

{{topic.upvote_count || 0}}

1 为什么如下代码会打印 6 个 6

let i = 0
for(i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}

答:setTimeout表示等一会执行,当for循环执行完,此时i的值为6,然后再执行console.log(i)执行六遍打印出6个6.

2 写出让上面代码打印 0、1、2、3、4、5 的方法
for(let i = 0; i<6; i++){
setTimeout(()=>{
console.log(i)
},0)
}
因为每次循环都会把i复制一份,留在这个空间,等for循环结束,执行console。log(i)语句就会依次打印出0,1,2,3,4,5

3 除了使用 for let 配合,还有什么其他方法可以打印出 0、1、2、3、4、5.

方法一:
function arr(num){console.log(num)};
var array = [0,,1,2,3,4,5,];
array.forEach(arr);
方法二:
let n=0
let step=()=>{
console.log(n)
if(n<5){
n+=1;
step();
}
}

23
回复 编辑