先以一道面试题做引子: 写出这段程序的输出内容: setTimeout(function(){ console.log(); },); new Promise(function(a,b){ console.log(); ;i<;i++){ i==&&a(); } console.log() }).then(function(){ console.log() }); console.log(); 如果你看了这道题不知道怎么下手,或者发现结果和自己的答案大相径庭,请继续往下看 1. ja…
先来道今日头条面试题开开胃 async function async1() { console.log('async1 start'); await async2(); console.log('async1 end'); } async function async2() { console.log('async2'); } console.log('script start'); setTimeout(function() { console.log('setTimeout'); }, 0)…
一道经典的前端笔试题,你能一眼写出他们的执行结果吗? async function async1() { console.log("async1 start"); await async2(); console.log("async1 end"); } async function async2() { console.log( 'async2'); } console.log("script start"); setTimeout(functi…
摘要: 理解JS的执行顺序. 作者:前端小智 原文:详解JavaScript的任务.微任务.队列以及代码执行顺序 思考下面 JavaScript 代码: console.log("script start"); setTimeout(function() { console.log("setTimeout"); }, 0); Promise.resolve() .then(function() { console.log("promise1");…
聊聊同步.异步和回调 同步,异步,回调,我们傻傻分不清楚, 有一天,你找到公司刚来的程序员小T,跟他说:“我们要加个需求,你放下手里的事情优先支持,我会一直等你做完再离开”.小T微笑着答应了,眼角却滑过一丝不易觉察的杀意. 世界上的所有事情大致可以分为同步去做和异步去做两种.你打电话去订酒店,电话另一边的工作人员需要查下他们的管理系统才能告诉你有没有房间. 这时候你有两种选择:一种是不挂电话一直等待,直到工作人员查到为止(可能几分钟也可能几个小时,取决于他们的办事效率),这就是同步的. 另一种是…
聊聊同步.异步和回调 同步,异步,回调,我们傻傻分不清楚, 有一天,你找到公司刚来的程序员小T,跟他说:“我们要加个需求,你放下手里的事情优先支持,我会一直等你做完再离开”.小T微笑着答应了,眼角却滑过一丝不易觉察的杀意. 世界上的所有事情大致可以分为同步去做和异步去做两种.你打电话去订酒店,电话另一边的工作人员需要查下他们的管理系统才能告诉你有没有房间. 这时候你有两种选择:一种是不挂电话一直等待,直到工作人员查到为止(可能几分钟也可能几个小时,取决于他们的办事效率),这就是同步的. 另一种是…
首先提出一个问题:点击页面上一个按钮发送两个ajax请求,其中一个请求会不会等待另一个请求执行完毕之后再执行? 答案是:不会,这两个异步请求会同时发送,至于执行的快与慢,要看响应的数据量的大小及后台逻辑的复杂程度. 从异步请求的执行原理来看,我们知道当一个异步请求发送时,浏览器不会处于锁死.等待的状态,从一个异步请求发送到获取响应结果的期间,浏览器还可以进行其它的操作.这就意味着多个异步请求的执行时并行的. 下面我们还是从一个例子来看一下这个问题. 要求:ajax1从后台请求下拉列表的数据,aj…
 [微任务]包括:Promise ,    process.nextTick() *node.js里面的  [宏任务]包括:整体代码script,  setTimeout    setInterval     先输出同步,然后把异步的放到异步队列.然后先执行异步队列的微任务,再执行里面的宏任务   setTimeout(function(){ console.log('set1') new Promise(function(resolve){ resolve() }).then(function…
一 理解篇 前言 本文仅仅用作借鉴使用,作者刚入行不久,所以请不小心看到这篇文章的朋友,手下留情. 本文以小故事的形式进行叙述,逻辑不通之处.请理解. 如有错误 ,欢迎指出. 谢谢.                                                           最后修改时间:2019-01-25 1.0.0 进程 老刘是一个软件公司的老板,公司下有两个部门,产品设计部门(产品进程)和研发部门(研发进程),产品设计部门在一楼,研发部门在二楼(独立地址空间).…
1 async function async1(){ 2 console.log('async1 start') //2 3 await async2() 4 //await async2()后面的内容可以看做是callback里得内容即是异步 5 //类似eventloop,settimeout 6 //Promise.resolve().then(()=>{console.log(async1 end)}) 7 console.log('async1 end') //5 8 } 9 10 a…