前端面试最常考、最容易被问崩的 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
相关推荐
qq_381338505 分钟前
前端状态管理新范式:Zustand、Jotai 与 Preact Signals 深度对比
前端·arcgis
knight_9___5 分钟前
大模型project面试3
人工智能·python·语言模型·面试·大模型·agent
布局呆星6 分钟前
Vue Router 笔记(二):正则路由、组件通信与动态路由
前端·javascript·vue.js
丑八怪大丑12 分钟前
HTML&CSS
前端·css·html
Makoto_Kimur13 分钟前
Java 后端面试场景题:页面刷新后一直转圈,应该怎么排查?
java·开发语言·面试
团象科技16 分钟前
全渠道出海布局之下,多币种云结算承担着怎样的作用
前端·人工智能
芝士爱知识a20 分钟前
2026 年教资面试考前急救软件推荐:基于智蛙面试app的技术评测
面试·职场和发展·智蛙面试·教资面试软件·ai模拟面试·教资考前急救·多模态大模型应用
lolo大魔王33 分钟前
Go 语言 Web 框架 Gin 入门详解
前端·golang·gin
AI人工智能+电脑小能手35 分钟前
【大白话说Java面试题 第53题】【JVM篇】第13题:JVM采用什么算法判断一个对象是否需要被回收?
java·jvm·算法·面试
小赵不会秃头39 分钟前
数据结构Day 06:线性结构、库操作及 Makefile 完整学习笔记
java·linux·数据结构·算法·面试