当前位置: 首页 > news >正文

前端八股文-高频面试题 - 教程

前端八股文-高频面试题 - 教程

HTML & CSS 篇

1. 盒模型

问:说说CSS盒模型,以及box-sizing的作用?

2. 居中对齐

问:如何实现一个元素的水平垂直居中?(至少说出3种)

  • Flexbox(首选)
    .parent {
    display: flex;
    justify-content: center;
    align-items: center;
    }
  • Grid
    .parent {
    display: grid;
    place-items: center;
    }
  • 定位 + Transform
    .child {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    }
3. BFC

问:什么是BFC?如何触发?有什么作用?

  • 定义:块级格式化上下文,一个独立的渲染区域。
  • 触发条件float不为noneoverflow不为visibledisplay: inline-block/flex/table-cellposition: absolute/fixed等。
  • 作用
    1. 清除浮动(防止高度塌陷)。
    2. 防止外边距重叠
    3. 隔离元素,阻止元素被浮动元素覆盖。
4. 选择器与优先级

问:CSS选择器的优先级如何计算?

  • !important > 行内样式 > ID选择器 > 类/伪类/属性选择器 > 元素/伪元素选择器 > 通配符
  • 计算规则(a, b, c, d)
    • a: 行内样式
    • b: ID选择器个数
    • c: 类、伪类、属性选择器个数
    • d: 元素、伪元素选择器个数
    • 从左到右逐级比较

JavaScript 篇(核心中的核心)

1. 事件循环

问:说出下面代码的输出顺序

console.log(1);
setTimeout(() => console.log(2), 0);
Promise.resolve().then(() => console.log(3));
console.log(4);
// 输出:1, 4, 3, 2
  • 原理
    1. 同步代码(宏任务)先执行:1, 4
    2. 清空微任务队列Promise.then -> 3
    3. 执行下一个宏任务setTimeout -> 2
2. 闭包

问:什么是闭包?有什么作用和缺点?

  • 定义:函数能够记住并访问其词法作用域,即使该函数在其作用域之外执行。
  • 作用
    1. 创建私有变量和方法(模块模式)。
    2. 实现柯里化和函数式编程
  • 缺点: improper use can lead to 内存泄漏
3. this 指向

问:如何确定函数中this的指向?

  1. 默认绑定:严格模式undefined,非严格模式window
  2. 隐式绑定obj.foo() -> this指向obj
  3. 显式绑定call/apply/bind -> 指向第一个参数。
  4. new绑定:指向新创建的对象。
  5. 箭头函数:继承定义时外层作用域的this无法被改变
4. 原型与原型链

问:说说原型链的理解?

5. 手写代码(必考!)
  • 手写 Promise.all
    Promise.myAll = function(promises) {
    return new Promise((resolve, reject) => {
    const results = [];
    let count = 0;
    promises.forEach((promise, i) => {
    Promise.resolve(promise).then(res => {
    results[i] = res;
    if (++count === promises.length) resolve(results);
    }).catch(reject);
    });
    });
    };
  • 手写 bind
    Function.prototype.myBind = function(context, ...args) {
    const fn = this;
    return function(...innerArgs) {
    return fn.apply(context, [...args, ...innerArgs]);
    };
    };
  • 手写防抖与节流
  • 手写深拷贝

Vue 篇

1. Vue2 vs Vue3 响应式原理
2. v-if vs v-show
  • v-if:真正的条件渲染,元素会销毁/创建。切换开销大
  • v-show:通过CSS display控制。初始渲染开销大
  • 使用场景:频繁切换用v-show,运行时条件很少改变用v-if
3. key 的作用
4. Vue 组件间通信方式
  1. Props / $emit:父子。
  2. v-model:语法糖。
  3. $parent / $children / refs:直接访问(不推荐)。
  4. Event Bus:任意组件(Vue3用mitt)。
  5. Provide / Inject:祖孙。
  6. Vuex / Pinia:状态管理。
5. nextTick 原理

React 篇

1. React 事件机制
2. useState vs useEffect
  • useState:用于在函数组件中添加状态。更新是异步的
  • useEffect:用于执行副作用。
    • []:只在挂载后执行一次。
    • [dep]:在挂载后和dep变化后执行。
    • 返回函数:用于清理(如取消订阅、清除定时器)。
3. useCallback & useMemo
  • useCallback:缓存函数本身,防止因函数引用变化导致子组件不必要的重渲染。
  • useMemo:缓存计算结果,避免每次渲染都进行高开销计算。
4. 受控组件 vs 非受控组件
5. 虚拟DOM & Diff算法
  • 虚拟DOM:轻量的JS对象,描述真实DOM。
  • Diffing策略
    1. 同级比较,不跨级。
    2. 不同类型的元素会拆卸重建。
    3. 同类型的元素会复用,只更新变化的属性。
    4. 列表使用**key**进行高效对比。

性能优化 & 网络 篇

1. 性能优化指标
2. 优化手段
  • 加载:代码分割、懒加载、图片优化、CDN、HTTP/2、preload/preconnect
  • 渲染:避免布局抖动、使用transform/opacity做动画、分解长任务。
  • 缓存:强缓存(Cache-Control: max-age)、协商缓存(Etag)。
3. 从输入URL到页面显示发生了什么?
  1. DNS解析:将域名解析为IP地址。
  2. TCP连接:三次握手。
  3. 发送HTTP请求
  4. 服务器处理并返回响应
  5. 浏览器解析渲染
    • 解析HTML构建DOM树。
    • 解析CSS构建CSSOM树。
    • 合并成渲染树。
    • 布局。
    • 绘制。
  6. TCP断开连接:四次挥手。
4. HTTP 缓存
  • 强缓存Cache-Controlmax-age)、Expires状态码200
  • 协商缓存Last-Modified/If-Modified-SinceEtag/If-None-Match状态码304

这份清单覆盖了前端面试90%以上的高频考点。建议你不仅要记住答案,更要理解其背后的原理,并能用简洁的语言清晰地表达出来。祝你面试顺利!

http://www.gsyq.cn/news/58382.html

相关文章:

  • 2024软工K班结对编程任务
  • 实用指南:各种各样的Self-attention学习上(第二十周周报)
  • 20251123 之所思 - 人生如梦
  • 人工智能之数据分析 numpy:第十章 副本视图
  • Node.js 端的接口签名处理
  • 20232402 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • the success of Japan
  • 赫尔默特变化 A=0的情况
  • 20232411 2024-2025-1 《网络与系统攻防技术》实验六实验报告
  • Oracle数据库核心操作完全手册:运维、开发与调优必备
  • 2025/11/25
  • 【网络】在windows下,使用自带的ftp服务器,并添加账户 - 指南
  • TRUG如何验证随机性
  • 实用指南:JVM篇:一文读懂JVM:工作原理之核心技术解析
  • java for linux 安装
  • 时间即生命 梁实秋
  • AI元人文:当理论成为悬鉴 ——兼论独立思想者的现代困境
  • 2025年西北地区净水、纯水、软化水设备厂家最新推荐!一体化净水处理设备、反渗透一体机、无动力无阀,陕西甘肃新疆宁夏四省,优质品牌选择指南
  • 2025 最新一体化净水处理设备厂家 TOP5 权威推荐:工业民用净化优选
  • Widnwos+Codex+国内大模型 - unknown
  • 死亡笔记 (Wordpress cms渗透)
  • 2025最新东莞AI搜索优化、GEO优化服务商TOP5评测:引领企业AI搜索增长新范式
  • P10687 True Liars 个人题解
  • Kali资料
  • 10分钟,无需公网 IP!零门槛搭建 NapCatQQ 趣味 AI 人机,聊天互动超简单
  • 1087. All Roads Lead to Rome (30)
  • 1091. Acute Stroke (30)
  • 人工智能之数据分析 numpy:第六章 数组基本操作
  • 1101. Quick Sort (25)
  • 解码网络编程基础