2022-02-14 02:31:18
2022年Web前端大厂高频面试题整理如下(核心知识点覆盖):
一、HTML与CSS基础HTML5新增特性
语义化标签:<header>、<section>、<article>、<footer>
多媒体支持:<audio>、<video>
本地存储:localStorage、sessionStorage、IndexedDB
画布与SVG:<canvas>、<svg>
CSS盒模型
标准盒模型:width/height仅包含内容区,总宽度需加padding+border+margin
box-sizing: border-box:宽度包含内容、内边距和边框(更直观的布局控制)
Flex布局与Grid布局
Flex:一维布局,通过justify-content、align-items控制对齐
Grid:二维布局,通过grid-template-columns/rows定义网格结构
响应式设计
媒体查询:@media (max-width: 768px) { ... }
视口单位:vw/vh、rem/em(结合html的font-size实现缩放)

变量提升与作用域
var存在变量提升,let/const存在暂时性死区(TDZ)
块级作用域:{}内定义的变量外部不可访问(let/const)
闭包与高阶函数
闭包:函数能访问其定义时的词法环境(如模块化、防抖节流)
高阶函数:返回函数的函数(如function createCounter() { return () => {} })
异步编程
Promise:解决回调地狱,链式调用(.then()、.catch())
Async/Await:基于Promise的语法糖,更直观的异步代码
事件循环:宏任务(setTimeout)与微任务(Promise.then)的执行顺序
原型与继承
原型链:__proto__指向构造函数的prototype
ES6类继承:class Child extends Parent,通过super()调用父类方法

React核心机制
Virtual DOM:通过React.createElement生成虚拟树,diff算法优化渲染
Hooks:useState、useEffect替代类组件的生命周期方法
状态管理:Redux(单向数据流)、Context API(跨组件传递数据)
Vue响应式原理
数据劫持:Object.defineProperty(Vue2)或Proxy(Vue3)监听数据变化
依赖收集:Watcher在数据更新时触发视图重新渲染
Webpack配置优化
代码分割:SplitChunksPlugin拆分公共依赖
缓存策略:contenthash生成唯一文件名,避免缓存失效
Tree Shaking:移除未使用的代码(需ES6模块语法支持)

首屏加载优化
代码压缩:TerserPlugin压缩JS,CSSNano压缩CSS
图片优化:WebP格式、懒加载(loading="lazy")
预加载:<link rel="preload">提前加载关键资源
安全防护
XSS攻击:转义用户输入、使用CSP(内容安全策略)限制脚本执行
CSRF攻击:验证Referer、使用SameSite属性的Cookie
浏览器渲染原理
关键渲染路径:HTML解析→CSSOM构建→Render Tree生成→Layout→Paint
重绘(Repaint)与回流(Reflow):避免频繁操作DOM或修改样式

HTTP/HTTPS
HTTP1.1:持久连接、管道化请求
HTTP2:多路复用、头部压缩、服务器推送
HTTPS:TLS握手过程、证书验证
TCP与UDP
TCP:可靠传输(三次握手、四次挥手)、流量控制(滑动窗口)
UDP:无连接、不可靠但高效(适用于视频流、DNS查询)
跨域解决方案
CORS:服务器设置Access-Control-Allow-Origin
JSONP:利用<script>标签的跨域能力(仅支持GET请求)
代理服务器:开发环境配置devServer.proxy,生产环境用Nginx反向代理

常见算法题
数组去重:Set、filter、reduce
深拷贝:JSON.parse(JSON.stringify(obj))(局限性:无法处理函数、Symbol等)
排序算法:快速排序、归并排序(时间复杂度分析)
链表与树
链表反转:迭代法或递归法
二叉树遍历:前序、中序、后序(递归与非递归实现)

TypeScript
类型注解:let age: number = 25
接口与泛型:定义对象结构或函数通用类型
GraphQL
查询语言:客户端按需请求数据,减少过度获取
与REST对比:灵活但复杂度高
Serverless
云函数:AWS Lambda、阿里云函数计算
适用场景:轻量级API、定时任务

总结:以上内容覆盖了2022年Web前端面试的高频考点,建议结合实际项目经验深入理解原理,并动手实践优化方案(如性能调优、安全防护)。面试前可针对目标公司技术栈(如React/Vue、微前端等)重点复习相关知识点。