前端知识体系
2022-04-21 15:52:14 0 举报
AI智能生成
前端工程师需要掌握的技能点
作者其他创作
大纲/内容
相关科目
数学思维
抽象
建模
流程严谨、死板无情
英语
国外问答网站(如stackoverflow.com)
github
英文文档
报错信息
编程基础
计算机基础
计算机组成原理
冯若依曼结构
二进制
算数运算和逻辑运算
操作系统
进程和线程
CPU调度运算
内存管理
文件系统和IO
汇编语言
寄存器和内存模型
堆栈模型
CPU指令
编译原理
编译器流程
AST
计算机网络
TCP/IP 协议
UDP
DNS
HTTP
编码
ASCII 码
unicode 字符集
UTF-8 / UTF-16
数据结构
结构化与非结构化的思维,重要
逻辑结构与代码表现(很多人分不清楚),例如
栈(逻辑结构)可用数组(代码)表示
栈(逻辑结构)可用链表(代码)表示
栈(逻辑结构)可用链表(代码)表示
队列(逻辑结构)可用数组(代码)表示
树(逻辑结构)可用对象(代码)表示
等
线性结构
向量(如 C 语言的数组,length 不可变)
链表
栈
队列
树
普通树
二叉树(为何偏偏重点讲二叉树?而不是三叉树、四叉树……)
搜索树
AVL 树
红黑树
B 树
优先级队列
堆
词典(散列表)
图
算法
复杂度
算法思想
二分
贪心
动态规划
递归思想(爆栈)
常用算法
线性结构
查找
排序
新增、删除
树
遍历
新增删除(平衡树)
图
搜索
最短路径
字符串
KMP 算法
前缀匹配
leetcode 刷题
编程模式
面向对象 OOP
类和对象
三要素(继承、封装、多态)
UML 类图
面向切面编程 AOP
函数式编程 FP
高级函数
纯函数
curry
compose
设计
SOLID 设计原则
常见设计模式
工厂模式
单例模式
观察者
发布订阅
代理
装饰器,等等……
MVC
MVVM
语法和 API
业界标准
W3C
ECMA-262
XML
HTML
基础标签
媒体标签
video
audio
图形标签
SVG
Canvas
CSS
理解“流” - CSS 的设计核心
“流”实际上是 CSS 世界中的一种基本的定
位和布局机制
位和布局机制
“流体布局”,指的是利用元素“流”的特性实现的各类布局效果。因为“流”本身
具有自适应特性,所以“流体布局”往往都是具有自适应性的。但是,“流体布局”并不等同于
“自适应布局”。
具有自适应特性,所以“流体布局”往往都是具有自适应性的。但是,“流体布局”并不等同于
“自适应布局”。
“自适应布局”是对凡是具有自适应特性的一类布局的统称,“流体布局”要狭
窄得多。例如,表格布局也可以设置为 100%自适应,但表格和“流”不是一路的,并不属于“流
体布局”
窄得多。例如,表格布局也可以设置为 100%自适应,但表格和“流”不是一路的,并不属于“流
体布局”
基础的图文样式
布局
inline block 和 inline-block
盒模型
盒模型是css布局的基石,它规定了网页元素如何显示以及元素间的相互关系。css定义所有的元素都可以拥有像盒子一样的外形和平面空间。即都包含内容区、补白(填充)、边框、边界(外边距)这就是盒模型。
content(内容区):元素的宽和高;
border(边框区):盒子的边缘;
padding(填充区):为了使页面布局看起来美观大方,盒子里的内容区会用padding来解决父元素和子元素的位置关系;
margin(外边界区):控制同辈元素之间的位置关系。
border(边框区):盒子的边缘;
padding(填充区):为了使页面布局看起来美观大方,盒子里的内容区会用padding来解决父元素和子元素的位置关系;
margin(外边界区):控制同辈元素之间的位置关系。
margin 相关
flex
float 布局
BFC
定位
relative
absolute
fixed
定位上下文
响应式
关于 viewport
rem
vw vh
选择器
css3
渐变
动画
字体 iconfont
模块化
BEM
css-in-js ,等等……
预编译器
less
sass
ES 语法
变量,表达式,函数等基础语法
作用域
自由变量
闭包
this
class 和继承
原型和原型链
异步编程
promise
async/await
宏任务和微任务
event loop 模型
Map 和 Set
Proxy 和 Reflect
装饰器 Decorator
常用 API
字符串
数组
对象
正则表达式
日期处理
异常处理
模块化
ES6 Module(可对比 AMD、CMD、CommonJS)
Typescript 语法
类型
变量类型
函数参数类型
函数返回值类型
自定义类型
接口
泛型
枚举
函数重载
命名空间
JS Web API
DOM 操作
DOM 结构
DOM 操作
DOM 操作的性能考虑
DOM 事件
事件绑定
冒泡模型
事件代理(委托)
BOM 操作
window
location(获取 url)
navigator(获取 UA)
history(前端路由)
screen
通讯
postMessage
BroadcastChannel
ajax
XMLHttpRequest
Fetch
浏览器同源策略
跨域请求
cors
jsonp
cookie
存储
localStorage
sessionStorage
indexedDB
webworker
JSON 格式
WebAssembly
Web RTC
网络和通讯
TCP/IP
什么是 IP
7 层模型
3 次握手,4次挥手
url 格式
DNS 解析(域名到 IP)
http
method(Restful API)
状态码
1xx 消息 表明请求已被接受,须要继续处理 这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束
2xx 成功 表明请求已成功被服务器接收、理解、并接受
3xx 重定向 这类状态码表明须要客户端采起进一步的操做才能完成请求。一般,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的Location域中指明
4xx 客户端错误 这类的状态码表明了客户端看起来可能发生了错误,妨碍了服务器的处理
5xx 服务器错误 表示服务器没法完成明显有效的请求
Request Header
Response Header(其中会有 gzip 压缩)
cookie
缓存策略
强制缓存
协商缓存
https
如何加密传输?
购买证书
websocket
实现原理
登录方案
session
jwt
鉴权方案
oauth2
sso
文件上传
相关术语
PV
UV
QPS ,等等……
CDN(专门提供静态文件服务,需要知道)
开发流程
代码版本管理 git
常用命令
多人协作开发
github gitlab coding.net 等
软件包管理
npm
package.json
yarn
技术基建
UI 组件库,业务组件库
公共 SDK
mock
charles mock
mock.js
在线 mock server
调试和抓包
debugger
charles 、 fiddler、wireShark
抓包
配置代理(如微信能力的测试,需要线上域名)
chrome 开发者工具
performance
lighthouse
深入:内存泄漏的排查
单元测试
jest 等工具
Vue React 框架的测试工具
CI/CD
概念
github actions
travis ,等等
linux 基本应用
ssh
ssh key 信任
常用命令
scp 远程拷贝
vim 编辑器
文档
wiki 平台
在线 office / 知识库
markdown 格式
研发流程
需求评审和 UI 设计
技术方案设计
开发过程:编码、调试、单元测试、自测、写注释和文档、代码走查等
联调
提测
上线
全量
小流量(灰度)
ABTest
DevOps 概念
前端工程化
规范化
eslint 编码规范(结合 pre-commit)
git 规范:branch 命名规范,commit 规范
jsdoc 注释规范
模块化
代码分模块组织(依赖于 js css 模块化语法和 webpack 等工具的支持)
组件化
自动化
脚手架(如 create-react-app vue-cli)
yeoman
监听文件变化,自动构建
CI/CD 自动单元测试,自动提测、上线等
自动兼容(如 postcss babel)
webpack
基础配置
常用 loader
常用 plugin
代码拆分、公共代码抽离(产出多 chunk)
性能优化
babel
babel-polyfill
babel-runtime
corejs
rollup
Parcel
运行和监控
浏览器和 webview
页面加载和渲染:从输入 url 到页面显示的整个过程
加载过程
渲染过程
重绘/重排
js 运行机制
js 引擎( 如 V8 )
内存机制
垃圾回收机制
性能优化
优化加载速度
优化渲染速度
优化操作体验(如节流、防抖)
Chrome Performance API 性能监控
Chrome lightHouse 检测工具
安全
XSS
CSRF
DDOS 攻击
密码加密存储
监控和统计
错误监控、报警
性能监控
统计上报(小流量统计)
APM 监控平台
埋点
为什么用图片发请求
客户端能力
jsbridge(如微信 jssdk)
js 调起 app
前端框架
框架基础
SPA 和 MPA (单页应用和多页应用)
前端路由
MVVM
组件化
虚拟 DOM 和 diff 算法
Vue
vue-cli
使用
组件
模板
指令
组件属性
组件生命周期
高级使用(如动态组件、异步组件、slot 等等)
性能优化
原理
响应式( Object.defineProperty )
模板编译
虚拟 DOM
周边
vuex
vue-router
UI 框架
elementUI
ant-design-vue
VantUI(H5)
vue3
原理
响应式(使用es6 proxy代理,将对象进行转化拦截,使用weakMap做弱引用缓存。当触发代理的get时就会调用track,在track里面会把对应的effect收集到targetMap)
周边
Pinia.js
vue-router
自动导入 unplugin-vue-components和unplugin-auto-import
UI 框架
element-plus
React
create-react-app
使用
JSX 语法
组件和属性
state 和 setState
组件生命周期
高级使用(如 Context、高阶组件、render-prop 等)
性能优化(如 shouldComponentUpdate PureComponent
原理
JSX 语法糖本质
合成事件机制
batchUpdate 机制
事物机制
组件渲染流程
fiber
周边
redux
mobX
react-router
UI 框架
ant-design
Hooks
Angular
常用工具和插件
lodash - 工具函数
echarts - 统计图表
jquery 或 zepto - DOM 操作
axios - ajax
date-fns 或 moment - 日期时间格式
css reset 库
caniuse.com 浏览器兼容性
tinypng
技术广度
服务端
nodejs
基本 API(如 http、fs 等)
commonjs 模块化
框架
koa
中间件
洋葱圈模型
express
egg
调试
SSR
服务端模板,如 ejs artTemplate 等
nuxt.js (Vue SSR)
next.js(React SSR)
常用软件
nginx(反向代理、负载均衡)
数据库
redis
mysql
mongodb
docker
日志分析
serverless
Deno
小程序
PWA
跨端(如 RN Weex)
客户端 electron
其他重要的事
0 条评论
下一页