一、HTML和CSS HTML
CSS
手写
JavaScript
规定了几种语言类型JavaScript
对象的底层数据结构是什么Symbol
类型在实际开发中的应用、可手动实现一个简单的Symbol
JavaScript
中的变量在内存中的具体存储形式null
和undefined
的区别JavaScript
数据类型的方式,以及他们的优缺点,如何准确的判断数组类型JavaScript
可以存储的最大数字、最大安全数字,JavaScript
处理大数字的方法、避免精度丢失的方法原型和原型链
JavaScript
中的原型规则instanceof
的底层实现原理,手动实现一个instanceof
Node
)中应用原型继承的案例new
一个对象的详细过程,手动实现一个new
操作符es6 class
构造以及继承的底层实现原理作用域和闭包
JavaScript
的作用域和作用域链JavaScript
的执行上下文栈,可以应用堆栈信息快速定位问题this
的原理以及几种不同使用场景的取值执行机制
try
里面放return
,finally
还会执行,理解其内部机制JavaScript
如何实现异步编程,可以详细描述EventLoop
机制Promise
实现串行Node
与浏览器EventLoop
的差异语法和API
ECMAScript
和JavaScript
的关系es5
、es6
提供的语法规范,JavaScript
提供的全局对象(例如Date
、Math
)、全局函数(例如decodeURI
、isNaN
)、全局属性(例如Infinity
、undefined
)map
、reduce
、filter
等高阶函数解决问题setInterval
需要注意的点,使用settimeout
实现setInterval
JavaScript
提供的正则表达式API
、可以使用正则表达式(邮箱校验、URL
解析、去重等)解决常见问题JavaScript
异常处理的方式,统一的异常处理方案
三、计算机基础
编译原理
JavaScript
代码解析成抽象语法树(AST
) base64
的编码原理JavaScript
中如何表示和转换网络协议
TCP/IP
网络协议族的构成,每层协议在应用程序中发挥的作用TCP
有哪些手段保证可靠交付DNS
的作用、DNS
解析的详细过程,DNS
优化原理CDN
的作用和原理HTTP
请求报文和响应报文的具体组成,能理解常见请求头的含义,有几种请求方式,区别是什么HTTP
所有状态码的具体含义,看到异常状态码能快速定位问题HTTP1.1
、HTTP2.0
带来的改变HTTPS
的加密原理,如何开启HTTPS
,如何劫持HTTPS
请求WebSocket
协议的底层原理、与HTTP
的区别设计模式
四、数据结构和算法
JavaScript编码能力
sleep
函数手动实现前端轮子
call、apply、bind
Promise/A+
规范的Promise
、手动实现async await
EventEmitter
实现事件发布、订阅JSON.stringify
、JSON.parse
懒加载
、下拉刷新
、上拉加载
、预加载
等效果数据结构
数组
、字符串
的存储原理,并熟练应用他们解决问题二叉树
、栈
、队列
、哈希表
的基本结构和特点,并可以应用它解决问题图
、堆
的基本结构和使用场景算法
回溯算法
、贪心算法
、分治算法
、动态规划
等解决复杂问题五、运行环境
我们需要理清语言和环境的关系:ECMAScript
描述了JavaScript
语言的语法和基本对象规范
浏览器作为JavaScript
的一种运行环境,为它提供了:文档对象模型(DOM
),描述处理网页内容的方法和接口、浏览器对象模型(BOM
),描述与浏览器进行交互的方法和接口
Node也是JavaScript
的一种运行环境,为它提供了操作I/O
、网络等API
浏览器API
W3C
标准的DOM
操作API
、浏览器差异、兼容性BOM
)提供的所有全局API
、浏览器差异、兼容性DOM
操作、海量数据的性能优化(合并操作、Diff
、requestAnimationFrame
等)DOM
事件流的具体实现机制、不同浏览器的差异、事件代理ajax
、fetch
、可以熟练使用第三方库浏览器原理
JavaScript
引擎以及它们的异同点、如何在代码中进行区分URL
到页面展现的详细过程HTML
代码的原理,以及构建DOM
树的流程CSS
规则,并将其应用到DOM
树上DOM
树进行绘制Node
Node
在应用程序中的作用,可以使用Node
搭建前端运行环境、使用Node
操作文件、操作数据库等等Node
开发框架,如Express
,Express
和Koa
的区别Node
提供的API
如Path
、Http
、Child Process
等并理解其实现原理Node
的底层运行原理、和浏览器的异同Node
事件驱动、非阻塞机制的实现原理六、框架和类库
轮子层出不穷,从原理上理解才是正道
TypeScript
泛型
、接口
等面向对象的相关概念,TypeScript
对面向对象理念的实现TypeScript
的好处,掌握TypeScript
基础语法TypeScript
的规则检测原理React
、Vue
等框架中使用TypeScript
进行开发React
React
和vue
选型和优缺点、核心架构的区别React
中setState
的执行机制,如何有效的管理状态React
的事件底层实现机制React
的虚拟DOM
和Diff
算法的内部实现React
的Fiber
工作原理,解决了什么问题React Router
和Vue Router
的底层实现原理、动态加载实现原理React API
、生命周期等,可应用HOC
、render props
、Hooks
等高阶用法解决问题React
的特性和原理,可以手动实现一个简单的React
Vue
Vue
的API
、生命周期、钩子函数MVVM
框架设计理念Vue
双向绑定实现原理、Diff
算法的内部实现Vue
的事件机制template
转换成真实DOM
的实现机制多端开发
SPA
)的原理和优缺点,掌握一种快速开发SPA
的方案Viewport
、em
、rem
的原理和用法,分辨率、px
、ppi
、dpi
、dp
的区别和实际应用JavaScript
移动客户端开发技术,如React Native
:可以搭建React Native
开发环境,熟练进行开发,可理解React Native
的运作原理,不同端适配JavaScriptPC
客户端开发技术,如Electron
:可搭建Electron
开发环境,熟练进行开发,可理解Electron
的运作原理数据流管理
React
和Vue
传统的跨组件通信方案,对比采用数据流管理框架的异同Redux
管理数据流,并理解其实现原理,中间件实现原理Mobx
管理数据流,并理解其实现原理,相比Redux
有什么优势Vuex
管理数据流,并理解其实现原理实用库
UI
组件框架,如antd design
,理解其设计理念、底层实现Echart
,理解其设计理念、底层实现,可以自己实现图表GIS
开发框架,如百度地图API
Three.js
、D3
lodash
、underscore
、moment
等,理解使用的工具类或工具函数的具体实现原理开发和调试
charls
Android
、IOS
模拟器进行调试,并掌握一种真机调试方案Vue
、React
等框架调试工具的使用七、前端工程
前端工程化:以工程化方法和工具提高开发生产效率、降低维护难度
项目构建
npm
、yarn
依赖包管理的原理,两者的区别npm
运行自定义脚本Babel
、ESLint
、webpack
等工具在项目中承担的作用ESLint
规则检测原理,常用的ESLint
配置Babel
的核心原理,可以自己编写一个Babel
插件Polyfill
Webpack
的编译原理、构建流程、热更新原理,chunk
、bundle
和module
的区别和应用loaders
和plugins
解决问题,可以自己编写loaders
和plugins
nginx
nginx
服务器、nginx
内置变量,掌握常用的匹配规则写法nginx
实现请求过滤、配置gzip
、负载均衡等,并能解释其内部原理开发提速
mock
工具的使用,如yapi
TDD
与BDD
模式,至少会使用一种前端单元测试框架版本控制
Git
的核心原理、工作流程、和SVN
的区别Git
命令、git rebase
、git stash
等进阶命令线上分支回滚
、线上分支错误合并
等复杂问题持续集成
CI/CD
技术的意义,至少熟练掌握一种CI/CD
工具的使用,如Jenkins
Web
应用、移动客户端应用、PC
客户端应用、小程序、H5
等等)八、项目和业务
后端技能
性能优化
Web
、App
性能优化方案SEO
排名规则、SEO
优化方案、前后端分离的SEO
SSR
实现方案、优缺点、及其性能优化Webpack
的性能优化方案Canvas
性能优化方案React
、Vue
等框架使用性能优化方案前端安全
XSS
攻击的原理、分类、具体案例,前端如何防御CSRF
攻击的原理、具体案例,前端如何防御HTTP
劫持、页面劫持的原理、防御措施参考地址:https://www.zhihu.com/question/27133608/answer/859275560
原文:https://www.cnblogs.com/lzhflzjx/p/14750936.html