一.CSS
1.水平垂直居中
2.三栏布局
圣杯,双飞翼,Float,绝对定位,Flex,Grid
3.两栏布局
双inline-block, 双float, 左float + 右margin-left, 左absolute + 右margin-left, 左float + 右BFC, flex, grid
4.固定宽高比
可替换元素 (img, video)
普通元素
5.display:none VS visibility:hidden
是否占据空间
是否渲染
是否是继承属性
读屏器是否读取
读屏器不会读取display:none的元素内容,而会读取visibility:hidden的元素内容
6.BFC
触发条件
margin合并规则
7.文本截断 单行、多行
二.手撕JS
1.new
2.call
3.apply
4.bind
5.防抖
6.节流
7.EventEmitter(发布者订阅者模式)
8.深拷贝
9.Promise
10.Prommise.all
并发请求限制
异步调度器 Scheduler
11.Prommise.race
12.函数柯里化
组合compose
累加器 add(1)(2), add(1, 2)(3)
express中间件
13.indexOf
14.jsonp
15.const
16.URL解析成对象
17.对象扁平化、反扁平化
18.数组中频次>=n的元素
19.手撕co
20.图片懒加载原理
海量图片, 分页拉取
原生方案: img标签的 loading=lazy
方案一:offsetTop < scrollTop + clientHeight
方案二:getBoundingClientRect().top < clientHeight
方案三:IntersectionObserver: change.isIntersecting
Vue 图片懒加载
React 图片懒加载
21. Set相关操作
Set转Array
Set交并差
Symbol作用
22.requestAnimationFrame宏任务
23.Array.flat 数组扁平化
24.reduce模拟map
25.JS继承
26.实现模板字符串
27.lazyMan/codeMan
三.浏览器
1.从URL到页面加载
2.性能指标
3.跨域
4.浏览器缓存
5.事件循环
四.网络
1.TCP三次握手
2.TCP四次挥手
3.HTTPS
4.HTTP状态码
5. http2
6.CDN DNS
7.Get、Post区别
五.前端工具
1.webpack打包过程
初始化流程
编译构建流程
输出流程
2.loader和plugin实现原理
loader
plugin
3.webpack优化:构建、打包
4.webpack treeShaking原理
CommonJS 和 ES6模块 区别
5. webpack babel配置
6.webpack 4 VS 5
六.Vue
1.Vue生命周期
2.Vue组件通信
3.Vue2响应式原理
4.Vue3响应式原理
5.nextTick原理
6.vue-router原理
7.Vuex原理
8.模板编译原理
9.CSS Scoped原理
10.computed原理
11.watch原理
七.React
0.生命周期
1.React工作流程
2. React diff
为什么DFS
保证组件的 生命周期时序 不混乱
优化策略: 分治
更新策略
3.React Fiber
4.React性能优化
5. hooks设计模式、原理、解决问题
hooks设计模式
hooks原理
hooks解决问题
hooks限制
闭包陷阱
hook实战
6.手撕useHook
useState
useEffect
useRef
useReducer
useCallback
useMemo
useContext
7.自定义hook
usePrevious
useTimeout
useDebounce防抖
useThrottle节流
useInterval
计时器
useWindowSize 监听浏览器视窗大小
useAsyncEffect
8.setState同步异步
9.redux原理
10.类组件 VS 函数组件
八.字符串
1.无重复字符的最长子串长度
2.大数相加
3.版本号
版本号排序
比较版本号
4. 有效的括号
5.最长回文子串
6.最长严格递增子序列
最长递增子序列
7.最长公共子序列
8.数组中出现次数最多的字符串
9.翻转单词
10.全排列
九.链表
1.反转链表
2.m,n区间反转链表
3.删除链表的倒数第N个结点
4.环形链表(返回起点)
5.合并两个有序链表
合并两个有序数组
6.两两交换链表中的节点
7.回文链表 判断
8.奇偶链表
9.有序链表转二叉搜索树
十.二叉树
1.二叉树层序遍历
2.二叉树前序遍历
3.二叉树最近公共祖先
4.二叉树展开为链表
5.二叉树中和为某一值的路径
6.所有路径值之和
计算从根节点到叶节点生成的 所有数字之和
7.数组还原树
十一.其他系列
1.旋转矩阵-返回数组
2.旋转矩阵-生成数组
3.矩阵中的路径
4.两数之和
扩展:三数之和
5.括号匹配
6.爬楼梯
7.全排列
8.盛最多水的容器
9.一维前缀和
10.数组中的第K个最大元素
11.复原IP地址
12.数组快排
十二.面试
1.岛屿的最大面积
岛屿数量
2.零钱兑换/最少硬币找零
3.最长递增子序列的个数
4.接雨水
5.寻找峰值
6.对角线遍历
7.二叉树最近公共祖先
8.二叉树层序遍历
9.合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。
10.下一个排列
11.奇偶链表
12.拼车
13.搜索二维矩阵II
14.最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度
15.字段序排数
16.二叉搜索树中第K小的元素
17.最长回文子串
18.数组中第K个最大元素
19.从前序与中序遍历序列构造二叉树
20.所有路径值之和
计算从根节点到叶节点生成的 所有数字之和