笔试题重难点笔记

笔试题笔记

Posted by Lan on July 18, 2019

let var

for(let i=0;i<2;i++){ setTimeout(function(){ console.log(i) },100 ); } for(var i=0;i<2;i++){ setTimeout(function(){ console.log(i) },100 ); }

注意leth和var的区别 执行结果:0122 原理: 对于var,您有一个函数作用域,并且只有一个共享绑定用于所有循环迭代 - 即每个setTimeout回调中的i表示在循环迭代结束后最终等于6的相同变量。

让你有一个块作用域,当在for循环中使用时,你会得到每个迭代的新绑定 - 即每个setTimeout回调中的i表示一个不同的变量,每个变量都有不同的值:第一个是0, 下一个是1等