循环/闭包/setTimeout/Promise 综合

Posted 付太

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环/闭包/setTimeout/Promise 综合相关的知识,希望对你有一定的参考价值。

  1. 控制台显示内容为?
for (var i = 0; i < 5; i++) {
  console.log(i);
}

 

  1. 控制台显示内容为?
for (var i = 0; i < 5; i++) {
  setTimeout(function() {
    console.log(i);
  }, 1000 * i);
}

 

  1. 控制台显示内容为?
for (var i = 0; i < 5; i++) {
  (function(i) {
    setTimeout(function() {
      console.log(i);
    }, i * 1000);
  })(i);
}

 

  1. 控制台显示内容为?
for (var i = 0; i < 5; i++) {
  (function() {
    setTimeout(function() {
      console.log(i);
    }, i * 1000);
  })(i);
}

 

  1. 控制台显示内容为?
for (var i = 0; i < 5; i++) {
  setTimeout((function(i) {
    console.log(i);
  })(i), i * 1000);
}

 

  1. 控制台显示内容为?
setTimeout(function() {
  console.log(1)
}, 0);
new Promise(function executor(resolve) {
  console.log(2);
  for( var i=0 ; i<10000 ; i++ ) {
    i == 9999 && resolve();
  }
  console.log(3);
}).then(function() {
  console.log(4);
});
console.log(5);

 

六道题循序渐进的考察了很多东西.

 

原出处及答案点这里作者:Liril

以上是关于循环/闭包/setTimeout/Promise 综合的主要内容,如果未能解决你的问题,请参考以下文章

回调函数,setTimeout,Promise

承诺与 setTimeout

ES6 class setTimeout promise async/await 娴嬭瘯Demo

JavaScript中的异步 macrotask 和 microtask

swift中闭包的循环引用

JavaScript的本来面貌之默认结构