前言
2020年最后一个月了,熬夜多天整理出17张思维导图,对前端面试复习知识点进行了最全的总结,分享给大家。每个知识点都尽量找到最好的文章来解释,通过思维导图的形式进行展示。
1-Javascript
内置类型
-
介绍一下JS内置类型有哪些
-
介绍一下typeof区分类型的原理
-
介绍一下类型转换
作用域
-
说说你对javascript的作用域的理解
-
什么是作用域链
-
解释下 let 和 const 的块级作用域
执行上下文
-
说说你对执行上下文的理解
- JavaScript深入之执行上下文栈
- 深入理解JavaScript执行上下文和执行栈
闭包
this指向
-
如何确定this指向
-
改变 this 指向的方式都有哪些
-
介绍箭头函数的 this
原型/继承
-
说一下对原型链的理解,画一个经典的原型链图示
- 进阶必读:深入理解 JavaScript 原型
- 最详尽的 JS 原型与原型链终极详解,没有「可能是」。(一)
- 最详尽的 JS 原型与原型链终极详解,没有「可能是」。(二)
- 最详尽的 JS 原型与原型链终极详解,没有「可能是」。(三)
-
举例说明js如何实现继承
-
ES5/ES6 的继承除了写法以外还有什么区别
事件循环
-
你对事件循环有了解吗?说说看!
- Event Loop的规范和实现
- 彻底吃透 JavaScript 执行机制
- 前端中的事件循环eventloop机制
-
微任务和宏任务有什么区别
-
浏览器和Node 事件循环的区别
- 浏览器与Node的事件循环(Event Loop)有何区别
异步编程
-
异步解决方案有哪些
- 还在找什么,JavaScript的异步编程解决方案全在这里了
-
Promise
- 实现一个Promise
- 实现Promise.all,race,allSeleted等
- async/await
2-DOM
事件
-
事件冒泡、捕获等理解
-
介绍下浏览器事件委托
-
实现一个自定义事件
dom操作
位置与大小
3-CSS
BFC
1px
position
flex
重绘回流
常见布局
-
居中
- 面试官:你能实现多少种水平垂直居中的布局(定宽高和不定宽高)
-
单列布局
-
两列自适应布局
-
三栏布局
-
粘连布局
动画实现
-
css 如何实现动画
-
使用纯CSS代码实现动画的暂停与播放
-
使用css3动画代替js的动画有什么好处?
盒模型
4-浏览器
跨域
-
跨域通信有哪些方式
- 前端跨域通信的几种方式
- CORS 简单请求+预检请求(彻底理解跨域)
-
表单可以跨域吗
- 为什么form表单提交没有跨域问题,但ajax提交有跨域问题?
从输入URL到页面展示,这中间发生了什么?
- 一文摸透从输入URL到页面渲染的过程
- 从输入 URL 到页面展示到底发生了什么?看完吊打面试官!
- 从输入 URL 到页面展示,这中间发生了什么?
- 从输入URL到页面展示,这中间发生了什么?
- 前端经典面试题: 从输入URL到页面加载发生了什么?
HTML、CSS和JavaScript,是如何变成页面的?
- 浏览器的工作原理
- 从 8 道面试题看浏览器渲染过程与性能优化
chrome仅仅打开了1个页面,为什么有4个进程?
- 仅仅打开了1个页面,为什么有4个进程?
- 仅仅打开了1个页面,为什么有4个进程?
localstorage
cookie
5-网络
HTTP
TCP
-
请描述处TCP的三次握手和四次挥手
- 面试官,不要再问我三次握手和四次挥手
- 两张动图-彻底明白TCP的三次握手与四次挥手
-
为什么浏览器要限制tcp的连接最大个数?
HTTP2
HTTPS
-
简述https原理,以及与http的区别
- 一个故事讲完https
- 一次安全可靠的通信——HTTPS原理
- HTTPS系列2——证书的信任链校验:certificate trust chain
CDN
DNS
6-框架
vue
-
你知道Vue响应式数据原理吗?Proxy 与 Object.defineProperty 优劣对比
- 深入 Vue 响应式原理,活捉一个 MVVM
- Vue3 的响应式和以前有什么区别,Proxy 无敌?
- 面试官: 实现双向绑定Proxy比defineproperty优劣如何?
- Vue3 中的数据侦测
-
Vue2.x组件通信有哪些方式
-
Vue 中的 computed 和 watch 的区别在哪里
- Vue 里的 computed 和 watch 的区别
-
组件中的data为什么是一个函数
- Vue-组件的data属性为什么必须是函数?
- 组件中的data为什么是一个函数而不是一个对象
-
nextTick的实现原理是什么
-
说说你对keep-alive组件的了解
-
你都做过哪些Vue的性能优化
-
vue3.0介绍
-
Composition API 的出现带来哪些新的开发体验,为啥需要这个
- Vue3快速上手指南-CompositionAPI
-
vuex
-
router
react
-
React 事件绑定原理
-
React中的setState缺点是什么呢
-
React组件通信如何实现
-
类组件和函数组件的区别
- React 函数式组件和类组件的区别,不是只有state和性能!
-
请你说说React的路由是什么
- 从路由原理出发,深入阅读理解react-router 4.0的源码
-
React有哪些性能优化的手段
- 21个React性能优化技巧
- React性能优化的8种方式了解一下?
-
React hooks用过吗,为什么要用
- 为什么需要React Hooks?
- 一文彻底搞懂react hooks的原理和实现
vue/react
7-工程化
脚手架
-
你知道什么是脚手架吗?
-
你们公司有自己的脚手架工具么,他是怎么工作的
构建工具
项目部署
内部包
开发规范
运维
git
构建优化
8-性能
页面是否可以快速加载
-
网络优化
-
代码大小
-
SSR
-
离线
- h5 秒开方案大全
- Hybrid App 离线包方案实践(附开源代码)
- 极致的 Hybrid:航旅离线包再加速!
-
缓存
是否允许用户快速开始与之交互
滚动和动画是否流畅
图片优化
骨架屏+合理的loading
- 网页骨架屏自动生成方案(dps)
- 一种自动化生成骨架屏的方案
9-监控
异常
-
项目中如何进行异常捕获
-
为什么会有那么多Script Error错误
性能
-
前端是如何监控性能的
- 腾讯前端团队是如何做web性能监控的?
- 蚂蚁金服如何把前端性能监控做到极致?
埋点
为什么通常在发送数据埋点请求的时候使用的是 1x1 像素的透明 gif 图片
- 为什么通常在发送数据埋点请求的时候使用的是 1x1 像素的透明 gif 图片?
sendbeacon
10-安全
- [2020全网最全前端安全综述](https://mp.weixin.qq.com/s/Qm_YI9pxfWQJpSLwbSFKbw)
xss
csrf
网络传输安全
- 一次安全可靠的通信——HTTPS原理000046a5fdc7802a15f7508b556413
- HTTPS中间人攻击实践(原理·实践)
接口加签
- API 接口的参数加密签名设计思路(参数加密+超时处理+私钥验证+Https)
接口加密
接口防重放
环境检测
代码加密混淆
无处不在的验证码s
- 验证码WEB端产品调研(一):Google reCAPTCHA
- 验证码WEB端产品调研(二):极限验证
浏览器为什么要阻止跨域请求?如何解决跨域?每次跨域请求都需要到达服务端吗?
11-Node
node 事件循环
谈谈 node 的内存泄漏
node 中间层怎样做的请求合并转发
pm2 怎么做进程管理,进程挂掉怎么处理
SSR
GraphQL
-
使用过GraphQL么,解决了什么问题
-
和普通接口相比GraphQL有什么优势呢
- GraphQL-BFF:微服务背景下的前后端数据交互方案
12-跨端
Hybrid App
Weex
RN
Flutter
13-微信开发
公众号
小程序
-
了解微信小程序的底层实现吗
-
h5跟小程序有什么区别
-
五花八门的小程序框架实现原理知道么
- 为何我们要用 React 来写小程序 - Taro 诞生记
14-新主题
微前端
serverless
边缘计算
-
你听过边缘计算吗?说说你对它的理解?
- 前端性能优化:当页面渲染遇上边缘计算
- 什么是边缘计算?一文读尽秒懂
WebAssembly
15-手写
Promise
-
手写一个Promise
-
使用Promise实现红绿灯交替重复亮
-
Promise.all,race,allSeleted
-
sendRequests(urls, max, callback),同一时间最多发起max个请求,请求全部完成后执行callback
-
maxRequest(fn, maxNum),实现maxRequest,成功后resolve结果,失败后重试,尝试超过一定次数才真正的reject
-
页面上有一个输入框,两个按钮,A按钮和B按钮,点击A或者B分别会发送一个异步请求,请求完成后,结果会显示在输入框中。用户随机点击A和B多次,要求输出显示结果时,按照用户点击的顺序显示
this
原型链
闭包
防抖节流
-
debounce
- JavaScript专题之跟着underscore学防抖
-
throttle
- JavaScript专题之跟着 underscore 学节流
网络请求
设计模式
深拷贝
- JS基本数据类型和引用数据类型的区别及深浅拷贝
- JavaScript专题之深浅拷贝
16-高频算法
字符串
- 反转字符串
- 字符串中的第一个唯一字符
- 最长公共前缀
数组
- 合并两个有序数组
- 数组中重复的数字
- 两个数组的交集
- 旋转数组
- 两数之和
链表
- 合并两个有序链表
- 删除中间节点
- 移除链表元素
- 反转链表
- 删除链表的倒数第N个节点
- 环形链表
- 从尾到头打印链表
二叉树
- 二叉树的遍历-前序中序后序层次
- 二叉树的最大深度
- 二叉搜索树
- BST 的查找
- 平衡二叉树
- 完全二叉树
栈/队列
排序
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 归并排序
- 快速排序
- 堆排序
递归
二分法
- 爱吃香蕉的珂珂
- x的平方根
- 寻找两个正序数组的中位数
- 搜索旋转排序数组
- 搜索插入位置
动态规划
- 最长上升子序列
- 爬楼梯
- 最大子序和
- 最小路径和
- 打家劫舍
- 买卖股票的最佳时机
贪心与分治
滑动窗口
- 滑动窗口最大值
- 无重复字符的最长子串
- 盛最多水的容器
位运算
17-项目/技术之外
项目开发中有遇到什么挑战没?
对哪个项目印象比较深刻深刻,遇到最难的项目是啥?
项目研发流程中作为前端开发一般扮演的啥角色?
现在有的项目中觉得哪些项目可以继续优化,为啥没有优化?
平时写项目总结么,一般总结哪些东西?
工作中能够持续学习么?
学习的动力怎么来的,如何维持?
未来会有什么样的规划?
对于加班你是怎么看的?
说下你学习前端的历程吧?
前端未来展望?
给大家准备了高清的思维导图和食用更加方便的PDF文档,全部聚合思维导图一张,分类思维导图17张,涉及前端开发的方方面面面,JS基础,工程化,性能优化,安全,框架等。如果您是准备面试,或者享扩展前端知识,都可以通过这个目录进行学习。
完整思维导图实在太大,可关注公众号「前端复习课」回复“思维导图”获取高清大图,总共18张,还有整理好的PDF哦。
本文首发于17张思维导图,2021年作为一名前端开发者需要掌握这些,前端面试复习资料参考大纲,转载请联系作者
来源:https://www.cnblogs.com/cYang2030/p/14111036.html |