前端面试最常考、最容易被问崩的 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
相关推荐
空中海10 小时前
第七章:vue工程化与构建工具
前端·javascript·vue.js
zhensherlock11 小时前
Protocol Launcher 系列:Trello 看板管理的协议自动化
前端·javascript·typescript·node.js·自动化·github·js
zhuà!11 小时前
element的el-form提交校验没反应问题
前端·elementui
龙猫里的小梅啊11 小时前
CSS(一)CSS基础语法与样式引入
前端·css
小码哥_常11 小时前
从0到1,开启Android音视频开发之旅
前端
渔舟小调11 小时前
P19 | 前端加密通信层 pikachuNetwork.js 完整实现
开发语言·前端·javascript
qq_120840937111 小时前
Three.js 工程向:Draw Call 预算治理与渲染批处理实践
前端·javascript
仙草不加料13 小时前
互联网大厂Java面试故事实录:三轮场景化技术提问与详细答案解析
java·spring boot·微服务·面试·aigc·电商·内容社区
落魄江湖行13 小时前
基础篇一 Java 有了 int 为什么还要 Integer?它们到底差在哪?
java·面试·八股文