#### 运行环境
1. 浏览器作为JavaScript的一种运行环境,为它提供了文档对象模型( DOM )
2. 浏览器对象模型( BOM )
3. Node也是JavaScript的一种运行环境,为它提供了操作 I/O、网络等API
#### 浏览器API
1. 浏览器提供的符合W3C标准的DOM操作API、浏览器差异、兼容性
2. 浏览器提供的浏览器对象模型BOM的全局API,浏览器差异、兼容性
3. 大量DOM操作、海量数据的性能优化( 合并操作、Diff、requestAnimationFrame等 )
4. 浏览器海量数据存储、操作性能优化
5. DOM事件流的具体实现机制、不同浏览器的差异、事件代理
6. 前端发起网络请求的几种方式及其底层实现、可以手写原型ajax、fetch、可以熟练使用第三方库
7. 浏览器的同源策略,如何避免同源策略,几种方式的异同点以及如何选型
8. 浏览器提供的几种存储机制、优缺点、开发中正确的选择
9. 浏览器跨标签通信
#### 浏览器原理
1. 各浏览器使用的JavaScript引擎以及它们的异同点、如何在代码中进行区分
2. 请求数据到请求结束与服务器了几次交互
3. 可详细描述浏览器从输入URL到页面展现的详细过程
4. 浏览器解析HTML代码的原理,以及构建DOM树的流程
5. 浏览器如何解析CSS规则,并将其应用到DOM树上
6. 浏览器如何解析好的带有样式的DOM树进行绘制
7. 浏览器的运行机制,如何配置资源异步同步加载
8. 浏览器回流与重绘的底层原理,引发原因,如何有效避免
9. 浏览器的垃圾回收机制,如何避免内存泄漏
10. 浏览器采用的缓存方案,如何选择和控制合适的缓存方案
#### Node
1. 理解Node在应用程序中的作用,可以借助Node搭建前端运行环境,使用Node操作文件、操作数据库等等
2. 掌握一种Node开发框架,如Express、Koa,Express和Koa的区别
3. 熟练使用Node提供的API如Path、Http、Child Process等并理解其实现原理
4. Node的底层运行原理、和浏览器的异同
5. Node事件驱动、非阻塞机制的实现原理