a. JS: 掌握event loop 面试必问的重点
b. 网络: HTTP常见的状态码
c. HTML: HTML5有哪些新特性
a.Event loop
JavaScript是单线程的,主线程从“任务队列”中读取事件,这个过程是循环不断的,这种运行机制被称为Event Loop(事件循环)。
任务队列(Task Queue): 任务分为同步任务(Synchoronous)和异步任务(Asynchronous)同步任务在主线程上执行,形成一个执行栈(Execution Context Stack)。异步任务指的是不进入主线程,而进入任务队列的任务,只有当任务队列通知主线程,某个异步任务可以执行了,该异步任务才会进去主线程执行。
上图中,主线程运行的时候,产生堆(heap)和栈(stack),栈中的代码调用各种外部API,它们在"任务队列"中加入各种事件(click,load,done)。只要栈中的代码执行完毕,主线程就会去读取"任务队列",依次执行那些事件所对应的回调函数。
b.HTTP常见状态码
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误
c.HTML5新特性
语义化标签
新表单类型
视频和音频
Canvas绘图
SVG
拖放(Drag 和 drop)
地理定位
离线存储
Web存储
WebSocket
Web Workers
参考网站:
阮一峰谈Event Loop
HTML新特性