前端面试必备知识点总结:从 CSS 到框架,一篇搞定!

144 阅读5分钟

🚀 前端面试必备知识点总结:从CSS到框架,一篇搞定!

作为前端开发者,面试时总会遇到各种各样的知识点考察。从基础的CSS布局到复杂的框架原理,从浏览器机制到网络协议,内容繁杂却又至关重要。今天就为大家梳理一份高频考点清单,帮你轻松应对面试!

🎨 一、CSS核心知识点

CSS是页面的"化妆师",掌握这些核心点,布局和样式问题再也不怕!

📌 盒模型

页面渲染时,DOM元素采用的布局模型可通过box-sizing设置,主要分为:

  • content-box(W3C标准盒模型):宽高仅包含内容区
  • border-box(IE盒模型):宽高包含内容区、内边距和边框
  • 还有padding-boxmargin-box(浏览器未实现)

📌 BFC(块级格式化上下文)

BFC是一个独立的渲染区域,内部元素与外部元素相互隔离,定位互不影响。

  • 触发条件:根元素、position: absolute/fixeddisplay: inline-block/table、浮动元素、overflow !== visible
  • 应用场景:阻止margin重叠、清除内部浮动、实现自适应两栏布局等

📌 居中布局

  • 水平居中:行内元素用text-align: center,块级元素用margin: 0 auto,也可通过absolute + transformflex + justify-content: center实现
  • 垂直居中:单行文本用line-height: height,通用方案有absolute + transformflex + align-items: center等 - 水平垂直居中:推荐flex + justify-content + align-items,或absolute + transform组合

📌 选择器优先级

优先级顺序:!important > 行内样式 > #id > .class > tag > * > 继承 > 默认,且选择器是从右往左解析的哦~

📌 动画相关

  • transition:用于过渡动画,包含property(属性)、duration(时长)、timing-function(曲线)、delay(延迟)四个属性,可通过transitionend监听结束
  • animation + @keyframes:更灵活的动画方案,支持循环次数(infinite)、方向(alternate)等,通过animationend监听结束

💻 二、JavaScript核心原理

JS是前端的"发动机",这些原理性知识是面试必问!

📌 原型与原型链

  • 原型(prototype):一个简单对象,用于实现属性继承,可理解为"对象的爹",实例通过__proto__指向原型
  • 构造函数:可通过new创建对象的函数,如Object
  • 原型链:由__proto__连接的对象链,用于属性查找。当查找对象属性时,会沿原型链向上搜索,直到Object.prototype

📌 执行上下文与作用域

  • 执行上下文:包含变量对象(VO)、作用域链、this指向,分为全局、函数、eval三种类型
  • 作用域链:由自身活动对象(AO)和父级[[scope]]组成,让函数能访问父级变量
  • 闭包:父函数销毁后,子函数仍能访问父级变量的特殊作用域。需注意多个子函数共享父级变量的问题,可通过传参或块级作用域解决

📌 异步编程

  • Promise:解决回调地狱的方案,支持then链式调用
  • async/awaitgenerator的语法糖,基于Promise实现,让异步代码看起来像同步
  • 事件循环(浏览器):执行一个宏任务(如setTimeout、IO),再清空微任务(如Promise),循环往复

📌 类型转换与判断

  • 隐式转换规则+遇到字符串会拼接,-/*%会转为数字;数字与对象相加时,优先调用对象的valueOftoString
  • 类型判断typeof适合基本类型,引用类型需用Object.prototype.toString,如[object Array]可判断数组

📌 数组方法

  • 遍历/转换:map(返回新数组)、forEach(无法break)、filter(过滤)、reduce(累加)
  • 增删:push/pop(末尾)、unshift/shift(头部)、splice(任意位置,会修改原数组)
  • 其他:slice(截取,不修改原数组)、flat(数组扁平化)

🌐 三、浏览器与网络

浏览器是前端的"舞台",这些机制你必须了解!

📌 从输入URL到页面展示的过程

  1. DNS解析:将域名转为IP地址
  2. TCP三次握手:建立连接
  3. 发送请求:携带请求头和主体
  4. 服务器返回HTML文件
  5. 浏览器渲染:
  • 解析HTML生成DOM树
  • 解析CSS生成样式树
  • 结合生成渲染树(Render Tree)
  • 布局(layout)和绘制(painting)

📌 重绘与回流

  • 重绘(repaint):样式变化不影响布局时触发(如改颜色),损耗小
  • 回流(reflow):尺寸、结构变化时触发(如改宽高),损耗大
  • 优化建议:用absolute/fixed脱离文档流、批量修改样式、避免频繁访问clientWidth等属性

📌 跨域解决方案

  • JSONP:利用<script>标签跨域特性,仅支持GET
  • CORS:服务端设置Access-Control-Allow-Origin: *
  • postMessage:跨窗口通信

📌 HTTP相关

  • HTTP 1.1:支持长连接(keep-alive)、断点续传
  • HTTP 2.0:多路复用、二进制分帧、首部压缩
  • 状态码200(成功)、304(缓存有效)、404(资源不存在)、500(服务器错误)

🧩 四、Vue框架核心

Vue是主流框架,这些知识点高频考察!

📌 生命周期

  • 创建阶段beforeCreate(实例刚创建,无数据)→ created(数据已绑定,无DOM)
  • 挂载阶段beforeMount(模板编译前)→ mounted(DOM已生成)
  • 更新阶段beforeUpdate(数据变,DOM未更)→ updated(DOM已更)
  • 销毁阶段beforeDestroy(销毁开始)→ destroyed(销毁完成)

📌 响应式原理:Proxy vs defineProperty

  • Proxy优势:能监听数组变化、无需深度遍历,更高效

📌 vue-router

  • 模式hash(带#)和history(需服务端支持)
  • 跳转this.$router.push()<router-link>
  • 占位<router-view>

📌 vuex核心

  • state:状态中心
  • mutations:同步修改状态(唯一途径)
  • actions:异步操作,提交mutations
  • getters:计算属性,获取状态
  • modules:拆分状态,便于管理

💡 总结

前端知识点多但有规律,掌握这些核心内容,面试时就能从容应对啦!建议结合实际项目理解,多敲代码多实践,祝你拿到心仪的offer~ 🎉