先从一个小题目开始: 以下代码的输出结果是?

// 1
function test1 () {
  console.log(1)
};

setTimeout(test1, 1000);                // T1-1setTimeout(test1(), 1000);              // T1-2
setTimeout(console.log(1.1), 1000);     // T1-3

 下面还有加强版:

// 2
function test2(value) {
  value = value || 'default 2';
  console.log(value);
}

setTimeout(test2, 1000, 2.1);           // T2-1
setTimeout(test2(), 1000, 2.2);         // T2-2
setTimeout(test2(2.3), 1000, 2.31);     // T2-3

// 3
function test3(value) {
  value = value || 'default 3';
  console.log(value);

  return test3;
}

setTimeout(test3, 1000, 3.1);           // T3-1
setTimeout(test3(), 1000, 3.2);         // T3-2
setTimeout(test3(3.3), 1000, 3.31)      // T3-3


// 4
for(var i = 0; i < 5; i++) {            // T4-1
  console.log(i);
}

for(var i = 0; i < 5; i++) {            // T4-2
  setTimeout(function() {
    console.log(i);
  }, 1000 * i);
}

for(var i = 0; i < 5; i++) {            // T4-3
  setTimeout(function(i) {
    console.log(i);
  }, 1000 * i);
}

for(var i = 0; i < 5; i++) {            // T4-4
  (function(i) {
    setTimeout(function() {
      console.log(i);
    }, i * 1000);
  })(i);
}

for(var i = 0; i < 5; i++) {            // T4-5
  (function() {
    setTimeout(function() {
      console.log(i);
    }, i * 1000);
  })(i);
}

for(var i = 0; i < 5; i++) {            // T4-6
  setTimeout((function(i) {
    console.log(i);
  })(i), i * 1000);
}


// 5
function someLoop(){
  var tag = true;
  var temp = 0;

  setTimeout(function(){ 
    tag = !tag; 
    console.log(tag)
  }, 1000);

  while(tag) {
    temp++;
  }
}

someLoop();                           // T5-1
setTimeout 示例2

相关文章:

  • 2021-10-03
  • 2022-01-20
  • 2021-10-03
  • 2021-11-14
  • 2021-10-22
猜你喜欢
  • 2022-02-06
  • 2021-07-18
  • 2021-06-23
  • 2021-11-10
  • 2022-12-23
  • 2022-02-05
  • 2022-12-23
相关资源
相似解决方案