123木头人

404 阅读4分钟

一.CSS

1.水平垂直居中

image.png

2.三栏布局

圣杯,双飞翼,Float,绝对定位,Flex,Grid

image.png image.png image.png image.png image.png image.png

3.两栏布局

双inline-block, 双float, 左float + 右margin-left, 左absolute + 右margin-left, 左float + 右BFC, flex, grid

image.png image.png image.png image.png image.png image.png image.png

4.固定宽高比

可替换元素 (img, video)

image.png

普通元素

image.png

5.display:none VS visibility:hidden

是否占据空间

image.png

是否渲染

image.png

是否是继承属性

image.png

读屏器是否读取

读屏器不会读取display:none的元素内容,而会读取visibility:hidden的元素内容

6.BFC

触发条件

image.png

margin合并规则

image.png

7.文本截断 单行、多行

image.png

二.手撕JS

1.new

image.png

2.call

image.png

3.apply

image.png

4.bind

image.png

5.防抖

image.png

6.节流

image.png

7.EventEmitter(发布者订阅者模式)

image.png

8.深拷贝

image.png

9.Promise

image.png image.png

10.Prommise.all

image.png

并发请求限制

image.png

异步调度器 Scheduler

image.png

11.Prommise.race

image.png

12.函数柯里化

image.png

组合compose

image.png

累加器 add(1)(2), add(1, 2)(3)

image.png

express中间件

image.png

13.indexOf

image.png

14.jsonp

image.png

15.const

image.png

16.URL解析成对象

image.png

17.对象扁平化、反扁平化

image.png image.png image.png

18.数组中频次>=n的元素

image.png

19.手撕co

image.png

20.图片懒加载原理

海量图片, 分页拉取

原生方案: img标签的 loading=lazy

方案一:offsetTop < scrollTop + clientHeight

方案二:getBoundingClientRect().top < clientHeight

方案三:IntersectionObserver: change.isIntersecting image.png

Vue 图片懒加载

image.png image.png image.png

React 图片懒加载

image.png

21. Set相关操作

Set转Array

image.png

Set交并差

image.png

Symbol作用

image.png

22.requestAnimationFrame宏任务

image.png

23.Array.flat 数组扁平化

image.png image.png

24.reduce模拟map

image.png

25.JS继承

image.png image.png

26.实现模板字符串

image.png

27.lazyMan/codeMan

carbon.png

三.浏览器

1.从URL到页面加载

image.png

2.性能指标

image.png

3.跨域

image.png

4.浏览器缓存

image.png image.png

5.事件循环

image.png

四.网络

1.TCP三次握手

2.TCP四次挥手

3.HTTPS

image.png

4.HTTP状态码

image.png image.png

5. http2

image.png

6.CDN DNS

image.png image.png

7.Get、Post区别

image.png

五.前端工具

1.webpack打包过程

初始化流程

image.png

编译构建流程

image.png

输出流程

image.png

2.loader和plugin实现原理

loader

image.png

plugin

image.png image.png

3.webpack优化:构建、打包

image.png image.png

4.webpack treeShaking原理

image.png

CommonJS 和 ES6模块 区别

image.png

5. webpack babel配置

image.png

6.webpack 4 VS 5

image.png

六.Vue

1.Vue生命周期

image.png

image.png

2.Vue组件通信

image.png

3.Vue2响应式原理

image.png image.png

4.Vue3响应式原理

image.png image.png image.png

5.nextTick原理

image.png image.png

6.vue-router原理

image.png image.png image.png image.png

7.Vuex原理

image.png image.png

8.模板编译原理

image.png

9.CSS Scoped原理

image.png

10.computed原理

image.png image.png

11.watch原理

image.png

七.React

0.生命周期

image.png image.png

1.React工作流程

image.png

2. React diff

为什么DFS

保证组件的 生命周期时序 不混乱

优化策略: 分治

image.png

更新策略

image.png

3.React Fiber

image.png image.png image.png

4.React性能优化

image.png image.png

5. hooks设计模式、原理、解决问题

hooks设计模式

image.png

hooks原理

image.png

hooks解决问题

image.png

hooks限制

image.png

闭包陷阱

image.png

hook实战

image.png

6.手撕useHook

useState

image.png

useEffect

image.png

useRef

image.png

useReducer

image.png

useCallback

image.png

useMemo

image.png

useContext

image.png

7.自定义hook

usePrevious

image.png

useTimeout

image.png

useDebounce防抖

image.png image.png

useThrottle节流

image.png

useInterval

image.png

计时器

image.png

useWindowSize 监听浏览器视窗大小

image.png

useAsyncEffect

image.png

8.setState同步异步

image.png

9.redux原理

image.png

10.类组件 VS 函数组件

image.png

八.字符串

1.无重复字符的最长子串长度

image.png

2.大数相加

32549F875B26A1A2ACCB5F5248028498.jpg

3.版本号

版本号排序

image.png

比较版本号

62128B22EE2955281D926F282CCC73EF.jpg

4. 有效的括号

7782E2D7-D97D-4999-B8C4-24739DBA9586.png

5.最长回文子串

49D9E3374294B5AE816F8B2A7FEC8BB6.jpg

6.最长严格递增子序列

最长递增子序列

image.png

7.最长公共子序列

image.png image.png image.png

8.数组中出现次数最多的字符串

image.png

9.翻转单词

image.png

10.全排列

image.png

九.链表

1.反转链表

86473C87-777A-445C-92DC-8BE1D21804CF.png

2.m,n区间反转链表

37FEE8B1-8D52-4E08-B580-C5A3B50F8D69.png

3.删除链表的倒数第N个结点

0CE94DBECC4F72FFA5F2734FD8F47CF1.jpg

4.环形链表(返回起点)

7D61CC224133498F1AE6E0DBC3C9467F.jpg

5.合并两个有序链表

BA2E5950-ABB6-47AB-8930-C594B4B4D62C.png

合并两个有序数组

image.png

6.两两交换链表中的节点

9BC3637C769FF6B78B2D017499A4CF24.jpg

7.回文链表 判断

51BA578947DB4ED0E50E133A967224B1.jpg

8.奇偶链表

746B647FA3F6D33A1E647D278EA9C92E.jpg

9.有序链表转二叉搜索树

B3674768AF23D7C2ECCC2F72FD473E4C.jpg

十.二叉树

1.二叉树层序遍历

3F3CD99C-0100-4484-98CF-6E77D1D7D16D.png

2.二叉树前序遍历

6FF43048-8F89-4EBA-B095-DC9D61846AE7.png

3.二叉树最近公共祖先

43C8A6EC8ADA1A4E01D8A60BF2B2BC7E.jpg

4.二叉树展开为链表

5859C0772D1FF6E201006D2C1CC1E884.jpg

5.二叉树中和为某一值的路径

75475465-F9C7-4654-B4B0-2EF97EC2DFB1.png

6.所有路径值之和

计算从根节点到叶节点生成的 所有数字之和

image.png

7.数组还原树

image.png

十一.其他系列

1.旋转矩阵-返回数组

image.png

2.旋转矩阵-生成数组

image.png

3.矩阵中的路径

image.png

4.两数之和

image.png

扩展:三数之和

image.png

5.括号匹配

image.png

6.爬楼梯

image.png

7.全排列

image.png

8.盛最多水的容器

image.png

9.一维前缀和

image.png

10.数组中的第K个最大元素

image.png image.png

11.复原IP地址

image.png

12.数组快排

image.png

十二.面试

1.岛屿的最大面积

image.png

岛屿数量

截屏2022-07-15 上午11.30.28.png

2.零钱兑换/最少硬币找零

截屏2022-07-14 下午10.11.22.png image.png

3.最长递增子序列的个数

截屏2022-07-14 下午8.54.49.png

4.接雨水

截屏2022-07-14 下午8.55.53.png

截屏2022-07-16 下午8.41.46.png

5.寻找峰值

截屏2022-07-14 下午8.58.57.png

6.对角线遍历

截屏2022-07-14 下午9.09.13.png

7.二叉树最近公共祖先

43C8A6EC8ADA1A4E01D8A60BF2B2BC7E.jpg

8.二叉树层序遍历

3F3CD99C-0100-4484-98CF-6E77D1D7D16D.png

9.合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 截屏2022-07-14 下午9.34.44.png

10.下一个排列

截屏2022-07-14 下午9.42.52.png 截屏2022-07-14 下午9.42.44.png

11.奇偶链表

746B647FA3F6D33A1E647D278EA9C92E.jpg

12.拼车

截屏2022-07-14 下午9.52.50.png

13.搜索二维矩阵II

截屏2022-07-14 下午9.56.32.png

14.最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度

截屏2022-07-14 下午10.00.24.png

15.字段序排数

截屏2022-07-14 下午10.03.56.png

16.二叉搜索树中第K小的元素

截屏2022-07-14 下午10.05.26.png

17.最长回文子串

49D9E3374294B5AE816F8B2A7FEC8BB6.jpg

18.数组中第K个最大元素

截屏2022-07-14 下午10.13.49.png

19.从前序与中序遍历序列构造二叉树

截屏2022-07-14 下午10.19.47.png 截屏2022-07-14 下午10.19.30.png

20.所有路径值之和

计算从根节点到叶节点生成的 所有数字之和

image.png

21.三数之和

image.png

22.复制带随机指针的链表

截屏2022-07-14 下午10.52.31.png