菜鸟-创作你的创作

前端面试

你说的 “前端面试” 可以分为几个方向:基础知识、实战技能、框架库、项目经验以及面试技巧。我帮你整理一份 最全面、最实用的前端面试全攻略,适合自测、复习和刷题。


一、前端面试常考方向

1️⃣ HTML / CSS / 浏览器原理
2️⃣ JavaScript 基础与高级
3️⃣ 框架与库(React / Vue / Angular)
4️⃣ 前端工程化(Webpack / Vite / Node / npm)
5️⃣ 网络与性能(HTTP / TCP /缓存 /性能优化)
6️⃣ 数据结构与算法
7️⃣ 项目经验 / 实战题


二、重点知识点

1️⃣ HTML / CSS


2️⃣ JavaScript


3️⃣ 框架与库


4️⃣ 前端工程化


5️⃣ 网络与性能


6️⃣ 数据结构与算法(前端常考)


7️⃣ 项目经验


三、前端面试题示例

  1. JS 闭包应用场景?
  2. 解释 event loop 工作原理
  3. 写一个防抖函数
  4. React 如何避免重复渲染?
  5. CSS 水平垂直居中 3 种方法
  6. HTTP 301 和 302 区别
  7. Vue 响应式原理
  8. Array 去重方法(Set / filter / reduce)

四、面试技巧

  1. 说结构,不说语法:尽量用图/流程描述
  2. 遇到不会的题:拆解问题,展示思路
  3. 项目经验优先:把项目亮点讲清楚
  4. 代码手写能力:白板 / 在线编辑器都可能手写
  5. 沟通能力:面试官关注协作和思路,不只是写代码

五、一句话总结

前端面试 = HTML/CSS + JS + 框架 + 网络 + 工程化 + 项目经验 + 算法
重点是理解原理 + 实战经验 + 思路表达

好的,我帮你整理一份 前端面试全套题库 + 解析 + 代码示例,结构清晰,覆盖 基础知识、JavaScript、框架、工程化、网络、性能、算法、项目经验,方便你刷题和复习。


前端面试全套题库(含解析 + 代码示例)

一、HTML / CSS

1. HTML 语义化标签

题目:请列举常用的语义化标签,并说明用途。
答案示例

标签用途
<header>页面头部
<footer>页面底部
<main>主内容区域
<article>独立文章或模块
<section>主题分区
<nav>导航菜单

解析:语义化有助于 SEO、屏幕阅读器辅助以及代码可维护性。


2. CSS 水平垂直居中

题目:实现一个 div 居中容器(水平 + 垂直)
解法一:Flex

.parent {
  display: flex;
  justify-content: center;
  align-items: center;
}

解法二:Grid

.parent {
  display: grid;
  place-items: center;
}


3. 盒模型

题目content-boxborder-box 有何区别?
答案

* { box-sizing: border-box; }


二、JavaScript

1. Object.keys 用法

const obj = { a: 1, b: 2 };
console.log(Object.keys(obj)); // ["a", "b"]

用途:获取对象自身可枚举属性名数组。


2. 防抖与节流

防抖(Debounce):

function debounce(fn, delay) {
  let timer;
  return function(...args) {
    clearTimeout(timer);
    timer = setTimeout(() => fn.apply(this, args), delay);
  }
}

节流(Throttle):

function throttle(fn, interval) {
  let last = 0;
  return function(...args) {
    const now = Date.now();
    if (now - last > interval) {
      fn.apply(this, args);
      last = now;
    }
  }
}


3. 闭包

function counter() {
  let count = 0;
  return function() {
    count++;
    return count;
  }
}
const c = counter();
console.log(c()); // 1
console.log(c()); // 2

用途:实现私有变量、数据封装。


4. 异步机制

Event Loop / 宏任务与微任务

console.log(1);
setTimeout(() => console.log(2), 0);
Promise.resolve().then(() => console.log(3));
console.log(4);

输出顺序

1 4 3 2

解析


三、框架

1. React 基础

function App() {
  const [count, setCount] = React.useState(0);
  return &lt;button onClick={() => setCount(count + 1)}>{count}&lt;/button>
}

Hooks


2. Vue 响应式

const state = Vue.reactive({ count: 0 });
Vue.watch(() => state.count, (newVal) => {
  console.log(newVal);
});

解析


四、前端工程化

1. npm 常用命令

npm install express
npm install -g typescript
npm uninstall 包名

2. Webpack / Vite


五、网络与性能

1. HTTP 状态码

状态码含义
200请求成功
301永久重定向
302临时重定向
404页面不存在
500服务器错误

2. 浏览器缓存

3. 前端性能优化


六、数据结构与算法

1. 数组去重

const arr = [1,1,2,2,3];
const unique = [...new Set(arr)];
console.log(unique); // [1,2,3]

2. 实现 map

Array.prototype.myMap = function(fn) {
  const result = [];
  for(let i=0; i&lt;this.length; i++){
    result.push(fn(this[i], i, this));
  }
  return result;
}


七、项目经验面试题

示例题目

  1. 你在项目中如何处理跨域?
  2. 页面性能优化做过哪些?
  3. 你遇到过最难的 bug 是什么?如何解决?
  4. 前端与后端如何协作?

解析


八、面试技巧总结

  1. 理解原理比背语法重要
  2. 能手写代码和画流程图
  3. 展示项目经验
  4. 善于拆解问题
  5. 沟通能力也很重要
退出移动版