- 主题:2018年的第一个前端问题之函数表达式
console.log(1);
(function(){
console.log(2);
img.onload = function(){console.log(3);};
console.log(4);
})();
console.log(5);
求顺序
【 在 bater (Bater) 的大作中提到: 】
: 今天研究预加载时看到了这个示例片段,觉得这个函数写得很精彩
: (function(){
: img.onload = function(){};
: ...................
--
FROM 219.142.140.210
setImmediate(function(){
console.log(1);
},0);
setTimeout(function(){
console.log(2);
},0);
new Promise(function(resolve){
console.log(3);
resolve();
console.log(4);
}).then(function(){
console.log(5);
});
console.log(6);
process.nextTick(function(){
console.log(7);
});
console.log(8);
再看看这个。。我复制的。。
【 在 bater (Bater) 的大作中提到: 】
: 列顺序真是个帮助思考的好方法,谢谢。
--
修改:shaolin FROM 219.142.140.210
FROM 219.142.140.210
search with keywords : microtask macrotask ...
it's not specified in ecma .
【 在 a0123456789q (a0123456789q) 的大作中提到: 】
: where is the declaration of "resolve"?
--
FROM 219.142.140.210
他那个。。。
你多看看event loop 相关的文章吧。
【 在 bater (Bater) 的大作中提到: 】
: 多谢提供方案,似乎有点理解异步了。
--
FROM 219.142.140.210
settimeout跟异步还是不一样的。
【 在 bater (Bater) 的大作中提到: 】
: 你给的上个例子虽然有错,但之前Shaolin指导过类似通过排序理解异步,所以能明白你的意思。有了这个例子就更清晰了 :)
--
FROM 219.142.140.210
settimeout是把事件在特定时间之后,放到系统的一个队列,等待下一个loop从里边取。
异步是浏览器其他线程干某事,也可以干完后再把回调放系统的那个队列。
【 在 xiatianup (李 ,只是期待夏天!!) 的大作中提到: 】
: 我也不会研究得那么透彻哈,一个知识点学透如果分10成功力的话,我一般只学到4、5成就止步了,如果觉得在实际工作中不够用的话,才会回头再学,加1、2成功力。
: 可能是我偏向实用主义的缘故,学透了我也不写书,所以一般属于点到为止的学习派,基本上明白了,就止步了。
: 再一个是我了解我的记性比较差,很容易忘,所以也感觉学深了最后还是忘了,有点浪费时间。
: ...................
--
FROM 219.142.140.210