Skip to the content.

前端技能树

领域知识

可视化方向

SVG

Canvas

基本用法
2D上下文
伪3D

WebGl

3D

ThreeJs

地图相关

异常监控

大数据

ODPS

阿里云基于云计算技术研发的开放数据处理服务

Hadoop(HDFS)

由Apache基金会开发的分布式系统基础架构

Hive

基于Hadoop的一个数据仓库工具

HBase

分布式、面向列的开源数据库
Apache软件基金会开放的开源流处理框架

Cassandra

一个高可靠的大规模分布式存储系统

Spark

专为大规模数据处理而设计的快速通用的计算引擎

ClickHouse

数据湖

low-code、no-code

微前端

qiankun工作原理

沙箱机制
css样式隔离

Garfish

singleSpa

移动端

H5

小程序

RN

Weex

微服务

ServerLess

JavaScript

数据类型

基础数据类型

String
Number
NaN
浮点数精度问题
Boolean
Undefined
Null

引用数据类型

Object
Array
Date
RegExp
Function

变量

var

let

变量提升、暂时性死区

const

作用域、执行上下文

bind、apply、call

this的指向

BOM

window对象

location对象

screen

history

DOM

选择符API

元素遍历

NodeInterator
TreeWalker

children()

contains()

样式

访问元素样式
操作样式表
元素大小

事件

事件流

冒泡
捕获

事件类型

UI
焦点事件
鼠标与滚轮
键盘与文本
变动事件
设备事件
触摸与手势

事件代理、事件委托

事件模拟与触发

事件循环机制(event loop)

函数调用栈(call stack)

任务队列(task queue)

macro-task(宏任务)

micro-task(微任务)

异步编程

回调函数

Promise (all、race、allSettled, any)

Generator 函数

可迭代协议(for of循环)
迭代器协议:(Iterator对象)

async/await

面向对象

继承

原型链

函数表达式

闭包

递归

私有变量

模仿块级作用域

柯里化

编程技巧

节流、防抖

懒加载

模块化

commonJs

cmd\amd\seaJs

ESM

模块化机制(commonjs、ESM)

JSON

语法

解析与序列化

序列化选项
解析选项
JSON.parse原理

深浅克隆

新兴API

requestAnimationFrame()

Page Visibility API

Geolocation API

File API

Web 计时

Web Workers

scrollIntoView()

Observer API

交叉监视器IntersetionObserver
ResizeObserver
MutationObserver
PerformanceObserver

严格模式

TypeScript

类型基础

基础类型

枚举类型

接口

函数

泛型

类型检查机制

高级类型

infer

ES6+语法和特性

ECMAScript介绍

let\cont

变量的解构与赋值

扩展功能

字符串的扩展

String.trimStart()和String.trimEnd()
String.prototype.matchAll

正则的扩展

数值的扩展

指数操作符

函数的扩展

箭头函数
参数默认值

数组的扩展

includes()
Array.flat()和Array.flatMap()

对象的扩展

Object.values()
Object.entries()
Object.getOwnPropertyDescriptors()

运算符的扩展

新增方法

字符串的新增方法

对象的新增方法

globalThis 顶层作用域

Set 和 Map 数据结构

Symbol、 BigInt()

Proxy

Reflect

Promise (all、race、allSettled, any)

Iterator 和 for…of 循环

Generator 函数

async 函数

Class

ESModule

可选链 (?.)

空值处理 (??)

replaceAll()

WeakRefs

数字分隔符(_)

ArrayBuffer 对象

正则

语法

普通字符

非打印字符

特殊字符

限定符

定位符

选择

反向引用

修饰符

g

i

m

s

元字符

运算符优先级

匹配规则

HTML

元数据(meta)

html标签元素、语义化

Dom树

媒体元素

标签位置

延迟脚本

异步脚本

浏览器

浏览器架构

浏览器工作原理

webWorker

serviceWorker

跨标签页通信方式

缓存策略

history和hash路由模式

事件模型

V8垃圾回收机制

CSS

盒子模型

布局

flex

grid布局

浮动、空间塌陷

BFC 块级格式化上下文

IFC 行内格式上下文

css选择器、伪类

css优先级

过渡与动画

预编译

less

sass

postcss

命名规范

css样式隔离

css性能

css3新特性

层叠上下文

错误处理与调试

浏览器报告的错误

错误处理

try-catch

错误抛出

错误类型

错误事件

调试

调试工具

调试方法

网络原理

应用层

http与https

http1.0、http2.0、http3.0

状态码

Websocket

DNS

FTP

SMTP

传输层

TCP

TCP的三次握手与四次挥手

UDP

OSI七层模型

Ajax与Comet

Ajax封装

Fetch

XMLHttpRequest对象

请求类型

XMLHttpRequest2

进度事件

load

progress

跨源资源共享

CROS的实现

图像Ping

JSONP

Comet

服务器发送事件

离线应用与客户端存储

离线检测

应用缓存

数据存储

Web存储机制

localStorage
sessionStorage
IndexDB
WebSQL

PWA

性能

性能评价指标

FCP

FPS

重排与重绘

白屏优化

大量图片加载优化

前端性能优化指标RAIL

性能优化手段

preload、prefetch、preconnect

具体手段

动画性能

大数据渲染优化(虚拟滚动)

数据结构

堆Heap

栈Stack

队列Queue

树Tree

数组Array

链表Linked List

几何Set

哈希表Map

图Graph

算法

动态规划

双指针

快慢指针

二分法

滑动窗口

BFS

递归

DFS

回溯

排序算法

交换排序

冒泡
快速

选择排序

简单选择排序

堆排序

插入排序

简单插入排序

希尔排序

归并排序

二路归并排序
多路归并排序

前端框架

Vue(Vue3)

Vuex

Vue-Router

Vue-SSR

Vue-Loader

核心概念

数据绑定原理
watch原理
nextTick原理
keep alive
检查数组变化
vue采用异步更新的原因
模板编译原理
vue diff算法原理
v-for中为什么要用key
vue组件中data为什么必须是函数
Vue.$set原理
父子组件生命周期调用顺序
双向绑定与vuex是否冲突
组件通信方法
虚拟DOM
为什么需要Virtual DOM
Virtual DOM Tree的创建
Virtual DOM 的更新
Virtual DOM 的diff
Virtual DOM的优化

React

Redux

React Hooks

React-Router

React-SSR

核心概念

单向数据流
diff算法

衍生

umi
next.js
dva
mobx

Angular

编程思想

常用设计模式

创建型模式

工厂方法
抽象工厂
生成器
原型
单例

结构型模式

适配器
桥接
组合
装饰
外观
代理
行为模式
中介者
观察者
访问者
策略
命令

设计原则

单依职责原则

开闭原则

里式替代原则

依赖倒置原则

接口隔离原则

最小知晓原则

编程范式

OOP

AOP

函数式编程

安全

xss攻击

同源策略与跨域方案

跨域cookie获取

CSRF攻击

工程化

代码版本管理

git

依赖管理

npm

yarn

pnpm

babel原理

打包构建工具

webpack

loader机制
webpack工作流程
webpack插件
webpack热更新原理

rollup

gulp

容器化

docker

代码质量

eslint

tslint

tree shaking

操作系统

进程与线程

进程通信

进程调度策略

死锁

IO多路复用

文件系统

后端基础

NodeJs

常用框架

Express
Meteor
NestJS
Koa\Koa2
sails
Egg
fastify
Loopback
hapi
polemo

httpServer

反向代理
静态服务
BFF
SSR
RPC调用

性能

QPS
压测
吞吐量

模块机制

require原理

进程通信

守护进程

异常处理

事件循环

文件操作

静态服务器

Nginx

其他编程语言

Java

Go

Python

PHP

.NET

数据库

SQL

MySql
Oracle

NoSQL

MongoDB
redis

设计架构

MVVM

MVC

MVP

API

RESTFul

GraphQL

鉴权方案

Tooken验证

OAUTH[开放授权]

HTTP Basic Authentication

自动化测试

单元测试

jest

mocha

jasmine

集成测试

puppeteer

Karma

Mocha

PhantomJS

返回首页