前端八股精选
网络
对比 HTTP1、HTTP2 和 HTTP3 的差异
对比 HTTP 和 HTTPS 的差异
对比 WebSocket 和 SSE 的差异
对比长连接和短连接
缓存问题:强缓存、协商缓存、Cache-Control、ETag 的区别?
跨域问题:同源策略、跨域概念、CORS 头、跨域场景和对应解法
安全问题:XSS vs CSRF vs Clickjacking
说几个常见的请求头和响应头?
状态码 301、302、304、307 的区别?
什么是预检请求(OPTIONS)?何时出现?
Cookie 各属性的作用?
什么是 JWT 以及它的作用?
如何取消一个请求?
浏览器 / HTML / DOM
浏览器的渲染流程?
浏览器的多进程架构包含什么?
浏览器本地存储方案有哪些?各方案有什么区别?
对比重排、重绘/回流的区别?如何减少重绘/回流?
<script>中 defer、async 属性的区别?<link>中 dns-prefetch、preconnect、preload、prefetch 的区别?<meta>的常见作用?如何与
<iframe>中的页面通信?对比 window.onload 和 DOMContentLoaded 两个事件的区别?
window.requestIdleCallback 的作用?
window.requestAnimationFrame 的作用?
如何自定义事件?
事件机制,捕获、冒泡、委托、passive 参数是什么?
V8 垃圾回收(GC)机制?新生代、老生代、Minor GC 和 Major GC 的区别?
什么是 CSP?有什么用?
如何监控和上报 JS 错误?
CSS
解释盒模型
选择器的优先级
display 属性值和作用?
flexbox 弹性布局怎么写?
水平垂直居中的 N 种写法?
双栏、三栏布局的写法?
响应式布局怎么写?
动画和过渡分别怎么写?
transform、transition、translate 的区别?
如何触发硬件加速?
px、em、rem、vw/vh 的区别
伪元素和伪类的区别?
line-height 的作用?
颜色主题如何实现?
说几个 CSS-in-JS 方案?
JavaScript
列举原始类型和引用类型?
怎么判断是数组?
什么是事件循环?
Node.js 和浏览器事件循环的区别?
对比 call、apply 和 bind
隐式类型转换的几种场景?
宏任务和微任务的区别?
怎么实现深、浅拷贝?
同步和异步的区别?
Promise 的三种状态?
setTimeout、setImmediate、Promise.resolve、process.nextTick 的时序问题?
Promise.all、Promise.race、Promise.allSettled、Promise.any 的差异?
Promise 如何实现并发?
async/await 的用法和异常处理?
解释迭代器和生成器?
如何控制并发?
Vue
生命周期?
对比 created 和 mounted
对比 Proxy 和 Object.defineProperty
对比 Composition API 和 Options API
对比 Computed 和 Watch
对比 v-if、v-show、v-html、v-model
$nextTick 的原理?
keep-alive 的作用?
组件间的通信方式有哪些?
hash 路由和 history 路由的区别?
router 和 location 跳转的区别?
React
什么是虚拟 DOM?它的好处和坏处?
对比受控组件和非受控组件?
key 属性的作用是什么?
React 事件和原生事件的差异?
useState 的 setter 是同步还是异步的?为什么?
对比 useMemo 和 useCallback
简述 React 组件的渲染流程?
如何优化 React 组件的渲染性能?
列举 React 中跨组件通信的方法?
如何实现双向数据流?
对比 SSR 和 CSR 的优劣?
优化
首屏白屏优化方法?
图片加载优化方法?
性能指标有哪些?区别是什么?
如何排查页面卡顿问题?
列举常见的性能分析工具。
性能分析中的火焰图怎么看?
长列表虚拟滚动实现原理?
模块按需加载怎么做?
SEO 优化方法?
工程化
CJS 和 ESM 的差异?
什么是 Tree-Shaking?
Vite 的打包策略?相比 Webpack 的改进?
模块热更新原理?
什么是 CI/CD?
解释语义化版本?
对比 git merge 和 git rebase
对比 git reset、git revert 和 git checkout
对比 npm、yarn 和 pnpm 的特点
列举 npm 常用命令
lock 文件的作用?
如何优化打包性能?
什么是 AST?有什么应用?
前端八股知识库包含前端开发常见的面试题和知识点,涵盖HTML、CSS、JavaScript、框架原理、性能优化等内容,帮助开发者系统复习和应对技术面试。