前端面试最常考、最容易被问崩的 50 道八股精简版

JS 核心 / 浏览器 / 网络 / Vue / 工程化 & 性能 / CSS


一、JS 核心(必背,18 题)

  1. var / let / const 区别
    • 变量提升、块级作用域、重复声明、重新赋值
  2. 闭包是什么?有什么用?有什么坑?
    • 函数访问外部作用域变量;模块化、保存变量;内存泄漏
  3. 原型和原型链
    • __proto__prototypeObject.prototype.__proto__ === null
  4. 作用域和作用域链
    • 全局、函数、块级;查找变量的规则
  5. this 指向
    • 默认、隐式、显式(call/apply/bind)、new、箭头函数
  6. call / apply / bind 区别
    • 立即执行 / 立即执行 / 返回函数;参数形式
  7. new 关键字做了什么
    • 创建空对象、绑定原型、执行构造函数、返回对象
  8. Promise 原理 & 状态
    • pending/fulfilled/rejected,不可逆,链式调用
  9. Promise.all / race / any / allSettled 区别
  10. async/await 原理
    • Generator + 自动执行 + Promise
  11. Event Loop(浏览器)
    • 执行栈 → 微任务 → 宏任务
  12. 微任务 / 宏任务有哪些
    • 微:Promise.then、queueMicrotask、MutationObserver
    • 宏:setTimeout、setInterval、script、I/O、UI 渲染
  13. 防抖节流
    • 防抖:最后一次触发;节流:固定频率触发
  14. 深拷贝和浅拷贝
    • 浅拷贝:只拷贝一层;深拷贝:递归拷贝所有层级
  15. == 和 === 区别
    • == 会隐式类型转换
  16. 类型判断方式
    • typeof、instanceof、Object.prototype.toString.call()
  17. 数组去重方法
    • Set、filter、includes、reduce
  18. 手写:防抖 / 节流 / 深拷贝 / Promise.all(高频)

二、浏览器(10 题)

  1. 从输入 URL 到页面展示发生了什么
    • DNS → TCP → TLS → 请求 → 响应 → 解析 HTML → 构建 DOM/CSSOM → 渲染树 → 布局 → 绘制 → 合成
  2. 重排(回流)和重绘
    • 重排:几何变化,必触发重绘;重绘:样式变化
  3. 如何减少重排重绘
    • 批量修改 DOM、脱离文档流、使用 transform/opacity
  4. 浏览器缓存
    • 强缓存(Cache-Control/Expires)、协商缓存(ETag/Last-Modified)
  5. localStorage / sessionStorage / cookie / session
  6. cookie 属性
    • domain、path、expires、max-age、httpOnly、secure、SameSite
  7. 跨域是什么?怎么解决
    • 同源策略:协议+域名+端口;CORS、proxy、JSONP、postMessage
  8. XSS 攻击与防御
    • 注入脚本;转义、CSP、httpOnly
  9. CSRF 攻击与防御
    • 伪造请求;token、SameSite、Referer
  10. 浏览器渲染流程
    • DOM + CSSOM → 渲染树 → 布局 → 绘制 → 合成

三、计算机网络(8 题)

  1. HTTP 和 HTTPS 区别
    • 明文/加密、端口 80/443、CA 证书
  2. HTTP1.1 / HTTP2 / HTTP3
    • 长连接、多路复用、二进制帧、QUIC
  3. GET 和 POST 区别
    • 语义、缓存、参数、编码、幂等
  4. TCP 三次握手
  5. TCP 四次挥手
  6. TCP 和 UDP 区别
  7. 状态码 301/302/304/401/403/404/500/502
  8. HTTPS 握手过程

四、Vue(高频,10 题)

  1. Vue2 和 Vue3 响应式区别
    • Object.defineProperty / Proxy
  2. Vue 生命周期
    • 创建、挂载、更新、销毁;setup 执行时机
  3. computed 和 watch 区别
    • 计算属性缓存;监听数据变化
  4. v-if 和 v-show 区别
    • 销毁/渲染;display:none
  5. v-for 和 v-if 为什么不能一起用
    • v-for 优先级更高,性能差
  6. key 作用
    • diff 算法标识,复用节点
  7. 组件通信方式
    • props/emit、eventBus、provide/inject、pinia/vuex、ref、emit、eventBus、provide/inject、pinia/vuex、ref、emit、eventBus、provide/inject、pinia/vuex、ref、parent
  8. Vue 双向绑定原理
    • 响应式 + 模板编译 + 发布订阅
  9. diff 算法核心
    • 同层比较、key 复用、头尾指针
  10. Vue 性能优化
    • v-once、v-show、异步组件、keep-alive、懒加载

五、工程化 & 性能(3 题)

  1. webpack 作用
    • 模块化打包、loader、plugin、chunk
  2. 前端性能优化
    • 网络、资源、渲染、JS、构建
  3. 懒加载 & 预加载

六、CSS(1 题)

  1. 居中方案
    • 行内:text-align + line-height
    • 定位:margin:auto / transform
    • flex:justify-content + align-items
相关推荐
测试19983 分钟前
2026最新软件测试面试八股文【附文档】
自动化测试·软件测试·python·测试工具·面试·职场和发展·测试用例
zmsofts13 分钟前
java面试必问13:MyBatis 一级缓存、二级缓存:从原理到脏数据,一篇讲透
java·面试·mybatis
我叫黑大帅42 分钟前
为什么map查找时间复杂度是O(1)?
后端·算法·面试
Web极客码44 分钟前
深入了解WordPress网站访客意图
服务器·前端·wordpress
幺风1 小时前
Claude Code 源码分析 — Tool/MCP/Skill 可扩展工具系统
前端·javascript·ai编程
vjmap1 小时前
唯杰地图CAD图层加高性能特效扩展包发布
前端·gis
ZC跨境爬虫1 小时前
3D 地球卫星轨道可视化平台开发 Day7(AI异步加速+卫星系列精简+AI Agent自动评论)
前端·人工智能·3d·html·json
ID_180079054732 小时前
淘宝 API 上货 / 商品搬家 业务场景实现 + JSON 返回示例
前端·javascript·json
M ? A2 小时前
Vue 动态组件在 React 中,VuReact 会如何实现?
前端·javascript·vue.js·经验分享·react.js·面试·vureact
vipbic2 小时前
独立开发复盘:我用 Uni-app + Strapi v5 肝了一个“会上瘾”的打卡小程序
前端·微信小程序