前端面试题大全

本文转载于:https://jcmpd975ac.feishu.cn/base/appNuDKPaGtimrdkB0JnXmpoktZ?table=tbl1IUBnjs02VgLW&view=vewJHSwJVd

以及一篇掘金上的文章,整理得也很不错:《前端进阶指南》

面试要点解析

知识点 类型 模块
盒子模型 css 前端基础
CSS选择器 css 前端基础
BFC css 前端基础
position css 前端基础
flex布局 css 前端基础
css优先级 css 前端基础
双飞冀/圣杯布局 css 前端基础
CSS3新特性 css 前端基础
CSS样式隔离 css 前端基础
CSS性能优化 css 前端基础
层叠上下文 css 前端基础
div居中 css 前端基础
浮动 css 前端基础
行内元素、块级元素 html&浏览器 前端基础
跨标签页通信 html&浏览器 前端基础
history和hash两种路由 html&浏览器 前端基础
DOM树 html&浏览器 前端基础
事件模型 html&浏览器 前端基础
缓存策略 html&浏览器 前端基础
浏览器架构 html&浏览器 前端基础
浏览器工作原理 html&浏览器 前端基础
内存泄露 html&浏览器 前端基础
原型链(点击这里查看) javascript 前端基础
继承 javascript 前端基础
作用域 javascript 前端基础
闭包 javascript 前端基础
变量提升 javascript 前端基础
this的指向 javascript 前端基础
立即执行函数 javascript 前端基础
instanceof原理 javascript 前端基础
bind的实现 javascript 前端基础
apply和call javascript 前端基础
柯里化 javascript 前端基础
v8垃圾回收机制 javascript 前端基础
浮点数精度 javascript 前端基础
new操作符 javascript 前端基础
事件循环机制 javascript 前端基础
promise原理 javascript 前端基础
generator原理 javascript 前端基础
模块机制 Node 大前端
require原理 Node 大前端
事件循环 Node 大前端
cluster原理 Node 大前端
流机制 Node 大前端
pipe原理 Node 大前端
守护进程 Node 大前端
进程通信 Node 大前端
异常处理 Node 大前端
合成事件 React 框架
virtual dom React 框架
setState过程 React 框架
fiber React 框架
高阶组件 React 框架
错误处理 React 框架
性能优化 React 框架
redux核心原则 Redux 框架
redux核心逻辑 Redux 框架
数据绑定原理 Vue 框架
computed和watch Vue 框架
slot Vue 框架
next tick原理 Vue 框架
keep alive Vue 框架
实现一个trim方法 编程题 算法
实现一个deepClone方法 编程题 算法
实现 add(1)(2)(3) 编程题 算法
大数相加 编程题 算法
拍平数组 编程题 算法
实现防抖函数 编程题 算法
实现节流函数 编程题 算法
实现字符串翻转 编程题 算法
数组去重 编程题 算法
实现千位分隔符 编程题 算法
判断是否是回文数 编程题 算法
实现一个模板引擎 编程题 算法
判断一个数是否是素数 编程题 算法
获取n以内所有的素数 编程题 算法
进程和线程 操作系统 基础
进程通信 操作系统 基础
进程调度策略 操作系统 基础
死锁 操作系统 基础
IO多路复用 操作系统 基础
模块化机制 工程化 前端基础
tree shaking 工程化 前端基础
uglify原理 工程化 前端基础
babel原理 工程化 前端基础
webpack工作流程 工程化 前端基础
webpack插件机制 工程化 前端基础
webpack loader机制 工程化 前端基础
前端微服务 工程化 前端基础
最近看的书 其他 其他
平常的学习途径 其他 其他
你比较擅长哪一块,不足的地方在哪里 其他 其他
常用设计模式 设计架构 其他
重构 设计架构 其他
MVVM 设计架构 其他
MVC 设计架构 其他
MVP 设计架构 其他
斐波那契数列 算法 算法
合并二维有序数组成一维有序数组 算法 算法
链表:反转链表 算法 算法
链表:链表有环 算法 算法
堆栈队列:判断括号字符串是否有效 算法 算法
返回数组中第k个最大元素 算法 算法
找出数组中和为sum的n个数 算法 算法
贪心:具有给定数值的最小字符串 算法 算法
二叉树:最大深度 算法 算法
二叉树:层次遍历 算法 算法
剪枝:判断数独是否有效 算法 算法
二分查找:求解平方根 算法 算法
字典树:实现一个字典树 算法 算法
爬楼梯问题 算法 算法
最短距离 算法 算法
LRU缓存 算法 算法
翻转二叉树 算法 算法
七层网络模型 网络 基础
http 网络 基础
https 网络 基础
http2.0 网络 基础
http3.0 网络 基础
websocket 网络 基础
tcp 网络 基础
udp 网络 基础
前端性能优化指标RAIL 性能 前端基础
前端性能优化手段 性能 前端基础
重排和重绘 性能 前端基础
白屏 性能 前端基础
大量图片加载优化 性能 前端基础
描述下浏览器从输入网址到页面展现的整个过程 性能 前端基础
动画性能 性能 前端基础
渲染合成层 性能 前端基础

面试手册

关键点 单选
大厂简历筛选有一套机制,有大厂经历或学历好或经验匹配的会比较容易通过筛选,缺少光环的需要有其他东西来证明,比如优秀的项目经历,参与过好的开源项目等 简历
简历上描述的技术/内容/项目确保自己是真的熟悉/掌握,看看每个技能是不是自己真的掌握了,能说出个1.2.3;每个项目是否自己能说清楚,一些细节是否了解,有哪些复盘点,是否有改进空间 简历
简历上描述的应该是与目标岗位直接/间接相关的,其他的比较优秀的点可以一笔带过,不需要花大篇幅介绍这些与目标岗位不符的能力 简历
面试官简历评估时也会看跳槽频率,像1年1跳这种会被评为不稳定,这时除非学历/经历特别出色的,其他基本就不通过了 简历
面试除了技能/项目知识外,状态也很重要;接到面试电话说明简历评估通过了,时间可以你自己定,如果没准备好,可以把时间拉长些,给自己一些准备时间;要求当场面试的可以礼貌拒绝然后定一个合适的时间 面试
对不同工作年限的同学会有不同的要求,校招主要看潜力,所以基础(计算机、网络)和算法会考得比较多;1~3年除了潜力外还看经验是否与业务匹配,项目经验;3~5年看是否有独挡一面的能力,需要在技术上有较好的深度,在做事情方面有自己的一套;大于5年的除了深度外对广度也有要求,且需要有跨端和架构设计的能力,对于管理岗位也会看带团队的能力 面试
面试时遇到不会的不用慌,每个人的知识面不一样,碰到不会的很正常,但可以积极思考,首先坦诚表示没有了解过相关知识,然后以现有的知识体系思考下这个问题,说明思路,合理猜测结果 面试
有时会有面试官会刻意施加压力,这时不在于问题回答的是否正确,而在于是否能在这些压力下仍然能够理性思考,面对面试官的每个问题,可以尝试想下面试官问这个问题的背后目的是什么 面试

模拟题

面试题 分类 知识点
模拟题1
react setState是同步还是异步 模拟题1 setState过程
什么是高阶组件,请举例说明 模拟题1 高阶组件
解释一下原型链 模拟题1 原型链(点击这里查看)
instanceof原理 模拟题1 instanceof原理
apply和call的作用及区别 模拟题1 apply和call
position有哪些值,作用分别是什么 模拟题1 position
说下你对DOM树的理解 模拟题1 DOM树
重排和重绘是什么,有什么区别 模拟题1 重排和重绘
https加密过程是怎样的 模拟题1 https
实现 add(1)(2)(3) 模拟题1 实现 add(1)(2)(3)
react为什么需要合成事件 模拟题2 合成事件
为什么有时react两次setState,只执行一次 模拟题2 setState过程
redux有哪些原则 模拟题2 redux核心原则
es5实现继承 模拟题2 继承
实现一个promise 模拟题2 promise原理
CSS选择器有哪些 模拟题2 CSS选择器
说下事件模型 模拟题2 事件模型
如何减少白屏的时间 模拟题2 白屏
3次握手过程 模拟题2 tcp
判断链表是否有环 模拟题2 链表:链表有环
react合成事件是什么,和原生事件的区别 模拟题3 合成事件
react如何处理异常 模拟题3 异常处理
闭包的作用和原理 模拟题3 闭包
0.1+0.2为什么不等于0.3 模拟题3 浮点数精度
什么是BFC,BFC有什么作用,如何形成BFC 模拟题3 BFC
浏览器缓存策略是怎样的 模拟题3 缓存策略
你知道的前端性能优化手段有哪些 模拟题3 前端性能优化手段
前端模块化机制有哪些 模拟题3 模块化机制
http2.0做了哪些改进 模拟题3 http,http2.0
求解平方根 模拟题3 二分查找:求解平方根
react为什么需要fiber 模拟题4 fiber
redux中间件机制 模拟题4 redux核心逻辑
bind的实现 模拟题4 bind的实现
说下generator原理 模拟题4 generator原理
flex布局有什么好处 模拟题4 flex布局
如何定位内存泄露 模拟题4 内存泄露
渲染合成层是什么 模拟题4 渲染合成层
babel是什么,怎么做到的 模拟题4 babel原理
http2.0有哪些不足,http3.0是什么 模拟题4 http3.0,http2.0
实现一个发布订阅模式 模拟题4 常用设计模式
vue的数据绑定机制是如何实现的 模拟题5 数据绑定原理
vue next tick实现原理 模拟题5 next tick原理
谈谈变量提升 模拟题5 变量提升
new操作符具体做了什么 模拟题5 new操作符
介绍下盒子模型 模拟题5 盒子模型
有哪些方式可以使div居中 模拟题5 div居中
有听过前端性能优化指标RAIL吗 模拟题5 前端性能优化指标RAIL
进程和线程的区别 模拟题5 进程和线程
tcp滑动窗口是什么 模拟题5 tcp
实现一个斐波那契数列 模拟题5 斐波那契数列
vue的computed和watch的区别 模拟题6 computed和watch
说下vue的keep alive 模拟题6 keep alive
什么是立即执行函数 模拟题6 立即执行函数
谈下事件循环机制 模拟题6 事件循环机制
css优先级是怎么计算的 模拟题6 css优先级
CSS相关的性能优化 模拟题6 CSS性能优化
谈下webpack loader机制 模拟题6 webpack loader机制
进程通信方式有哪些 模拟题6 进程通信
爬楼梯问题 模拟题6 爬楼梯问题
实现一个trim方法 模拟题6 实现一个trim方法
react fiber有哪些优点,怎样做到的 模拟题7 fiber
谈谈你对作用域的理解 模拟题7 作用域
双飞冀/圣杯布局 模拟题7 双飞冀/圣杯布局
浮动元素会造成什么影响,如何清除浮动 模拟题7 浮动
网站首页有大量的图片,加载很慢,如何去优化呢? 模拟题7 大量图片加载优化
描述下浏览器从输入网址到页面展现的整个过程 模拟题7 描述下浏览器从输入网址到页面展现的整个过程
uglify原理的是什么 模拟题7 uglify原理
tcp重试机制 模拟题7 tcp
层次遍历二叉树 模拟题7 二叉树:层次遍历,二叉树:最大深度
实现节流函数 模拟题7 实现节流函数
react有哪些性能优化的点 模拟题8 性能优化
v8垃圾回收机制 模拟题8 v8垃圾回收机制
CSS样式隔离手段 模拟题8 CSS样式隔离
行内元素、块级元素有哪些,区别是什么 模拟题8 行内元素、块级元素
聊下你知道的浏览器架构 模拟题8 浏览器架构
是否有写过webpack插件 模拟题8 webpack插件机制
websocket建立过程 模拟题8 websocket
合并二维有序数组成一维有序数组 模拟题8 合并二维有序数组成一维有序数组
实现防抖函数 模拟题8 实现防抖函数
最近看了什么书,有什么心得 模拟题8 最近看的书
CSS3有哪些新特性 模拟题9 CSS3新特性
层叠上下文是什么 模拟题9 层叠上下文
history和hash两种路由方式的最大区别是什么? 模拟题9 history和hash两种路由
动画性能如何优化 模拟题9 动画性能
tree shaking是什么,有什么作用,原理是什么 模拟题9 tree shaking
webpack工作流程是怎样的 模拟题9 webpack工作流程
什么场景下会用策略模式 模拟题9 常用设计模式
找出数组中和为sum的n个数 模拟题9 找出数组中和为sum的n个数
判断括号字符串是否有效 模拟题9 堆栈队列:判断括号字符串是否有效
平常的学习途径 模拟题9 平常的学习途径
node模块机制是怎样的 模拟题十 模块机制
node require具体实现是什么 模拟题十 require原理
node事件循环与浏览器的哪些不一样 模拟题十 事件循环,事件循环机制
cluster原理是怎样的 模拟题十 cluster原理
pipe原理是怎样的 模拟题十 pipe原理
node的异常处理方式 模拟题十 异常处理
适配器和外观模式的区别 模拟题十 常用设计模式
重构的手段有哪些 模拟题十 重构
数组去重 模拟题十 数组去重
你比较擅长哪一块,不足的地方在哪里 模拟题十 你比较擅长哪一块,不足的地方在哪里
跨标签页通信的方式有哪些 跨标签页通信
前端微服务是用来解决什么问题的 前端微服务
udp和tcp的区别 tcp,udp
node内置了哪些流,是怎么工作的 流机制
守护进程是什么,为什么需要它 守护进程
node进程通信有哪些方式 进程通信
MVVM、MVC、MVP分别用于什么场景,区别是什么 MVVM,MVC,MVP
拍平多维数组 拍平数组
实现一个模板引擎 实现一个模板引擎