>  Q&A  >  본문

一个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]);
}
PHPzPHPz2769일 전610

모든 응답(4)나는 대답할 것이다

  • 数据分析师

    数据分析师2017-10-01 01:15:49

    자바스크립트 알고리즘의 이해-PHP 중국어 사이트 Q&A-자바스크립트 알고리즘의 이해-PHP 중국어 사이트 Q&A

    둘러보고 배워보세요.

    회신하다
    0
  • 阿神

    阿神2017-04-10 12:44:05

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

    회신하다
    0
  • 黄舟

    黄舟2017-04-10 12:44:05

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

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-10 12:44:05

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

    회신하다
    0
  • 취소회신하다