一个javascript算法的理解

网上看到一个javascript的算法。但不是懂运行原理,求指教。

var ints=[1,3,2,4,8,6,7,5];
for(i = 0;i < ints.length;i++) {
 setTimeout(function(num){
 console.log(num);
 },ints[i],ints[i]);
}
阅读 5.9k
3 个回答

setTimeout有两种形式
setTimeout(code,interval)
setTimeout(func,interval,args)
所以第二个ints[i]就会作为参数传进去

javascript的执行上下文是采用运行期的,也就是说,如果不传ints[i]的话,会导致setTimeout里调用的number一直是数组的最后一项,也就是5。

遇到元素是 0 就死了.
0 只是推迟到最后.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题