下面三段代码的输出结果不同,前端初学者想请问一下背后的原因是什么(学不明白) for(var i = 0;i { console.log(i) },0); } // 输出 undefined undefined undefined for(var i = 0;i < 3;++i){ setTimeout(function (){ console.log(i) },0); } // 输出 3 3 3 for(var i = 0;i < 3;++i){ setTimeout( console.log(i),0); } // 输出 1 2 3