前端基础3:js篇(基础及算法)
1、js闭包相关:
题1:
1 for (var i = 0; i < 5; i++) { 2 setTimeout(function() { 3 console.log(i); 4 }, 1000 * i); 5 } 6 7 //变形1 8 for (var i = 0; i < 5; i++) { 9 (function(i) { 10 setTimeout(function() { 11 console.log(i); 12 }, i * 1000); 13 })(i); 14 } 15 16 //变形2 17 for (var i = 0; i < 5; i++) { 18 (function() { 19 setTimeout(function() { 20 console.log(i); 21 }, i * 1000); 22 })(i); 23 } 24 25 //变形3 26 for (var i = 0; i < 5; i++) { 27 setTimeout((function(i) { 28 console.log(i); 29 })(i), i * 1000); 30 }
2、Promise相关
1 setTimeout(function() { 2 console.log(1) 3 }, 0); 4 new Promise(function executor(resolve) { 5 console.log(2); 6 for( var i=0 ; i<10000 ; i++ ) { 7 i == 9999 && resolve(); 8 } 9 console.log(3); 10 }).then(function() { 11 console.log(4); 12 }); 13 console.log(5);