$(function(){
})
输出: 0 2 ,1 2
setTimeout(func,time)函数,延迟运行函数.将func函数添加到“执行队列”中,当主程序完成后,再按照执行队列运行.
let 是块级作用域,每次for 循环把定义的i 会保存在闭包函数(setTimeout()中的函数)中,所以每次打印都是不同的值;var 定义的 j 在for循环的外面,for 循环执行完,j 已经变成 2,所以每次打印出来都是2
$(function(){ let j = 0 for(let i=0;i<2;i++,j++){ setTimeout(function(){ console.log(i,j) },1000) } }) 输出: 0 2 ,1 2
同上,虽然j 是用 let 定义的,但是for 循环执行完,依然变成 2
$(function(){ let i, j = 0 for(i=0;i<2;i++,j++){ setTimeout(function(){ console.log(i,j) },1000) } }) 输出: 2 2 ,2 2
此时 i 和 j 都定义在for 循环外面,打印出来都是 2
$(function(){
})
输出: 0 2 ,1 2
原文:https://www.cnblogs.com/lk-food/p/12490964.html