84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
网上看到一个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]); }
学习是最好的投资!
一个javascript算法的理解-PHP中文网问答-一个javascript算法的理解-PHP中文网问答
围观一下哦,学习一下。
setTimeout有两种形式setTimeout(code,interval)setTimeout(func,interval,args) 所以第二个ints[i]就会作为参数传进去
setTimeout(code,interval)
setTimeout(func,interval,args)
ints[i]
javascript的执行上下文是采用运行期的,也就是说,如果不传ints[i]的话,会导致setTimeout里调用的number一直是数组的最后一项,也就是5。
遇到元素是 0 就死了. 0 只是推迟到最后.
一个javascript算法的理解-PHP中文网问答-一个javascript算法的理解-PHP中文网问答
围观一下哦,学习一下。
setTimeout有两种形式
setTimeout(code,interval)
setTimeout(func,interval,args)
所以第二个
ints[i]
就会作为参数传进去javascript的执行上下文是采用运行期的,也就是说,如果不传ints[i]的话,会导致setTimeout里调用的number一直是数组的最后一项,也就是5。
遇到元素是 0 就死了.
0 只是推迟到最后.