前端面试最常考、最容易被问崩的 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
相关推荐
spiritualfood2 小时前
蓝桥杯大学b组水质检测
c语言·c++·算法·青少年编程·职场和发展·蓝桥杯
恪愚2 小时前
three | 材质 Material
前端·javascript·材质
zuoerjinshu2 小时前
WebSpoon9.0(KETTLE的WEB版本)编译 + tomcatdocker部署 + 远程调试教程
前端
lxmyzzs2 小时前
解决Windows安装OpenClaw报错:无法加载npm.ps1,禁止运行脚本
前端·windows·npm·openclaw
昨日余光2 小时前
建议收藏!我开发了一个免费无限制的AI绘画公益站!
开发语言·前端·javascript·ai作画·typescript
意疏2 小时前
openJiuwen实战:用AsyncCallbackFramework为Agent增强器添加可观测性
java·服务器·前端
llxxyy卢2 小时前
polar中等web部分题目
前端
马士兵教育2 小时前
2026年IT行业基本预测!计算机专业学生就业编程语言Java/C/C++/Python该如何选择?
java·开发语言·c++·人工智能·python·面试·职场和发展
wuhen_n2 小时前
5年前端,我为什么要all in AI Agent?
前端·vue.js·ai编程