前端面试是每位开发者迈向职业进阶的重要环节,涉及 HTML、CSS、JavaScript、性能优化、浏览器原理、网络、安全、框架(Vue/React) 等核心知识点。本文不仅会覆盖 前端面试的高频八股文,还会结合 生动的案例,让你在面试时能够 脱离死记硬背,从理解中突破!
问题:什么是 HTML 语义化?为什么要使用语义化标签?
回答要点:
示例:对比错误与正确的 HTML 结构
<div id="header">标题div>
<div id="nav">导航div>
<div id="content">主要内容div>
<header>标题header>
<nav>导航nav>
<main>主要内容main>
问题:如何利用 BFC 解决浮动问题?
回答要点:
overflow: hidden
/ display: flow-root
。示例:BFC 解决浮动塌陷问题
.container {
overflow: hidden; /* 触发 BFC,清除浮动 */
}
问题:请解释 JavaScript 的 Event Loop 机制?
回答要点:
setTimeout
)。示例:考察 Event Loop 的执行顺序
console.log('1');
setTimeout(() => console.log('2'), 0);
Promise.resolve().then(() => console.log('3'));
console.log('4');
执行结果: 1 -> 4 -> 3 -> 2
问题:什么是闭包?如何应用闭包?
回答要点:
示例:闭包实现缓存
function createCache() {
let cache = {};
return function(key, value) {
if (!cache[key]) cache[key] = value;
return cache[key];
};
}
const cache = createCache();
cache('name', 'Alice');
console.log(cache('name')); // 'Alice'
问题:浏览器渲染页面的步骤是什么?
回答要点:
示例:为什么 position: absolute
会引发重排?
.box {
position: absolute; /* 触发 Layout 计算 */
}
优化方案:尽量使用 transform
或 opacity
,避免触发回流。
问题:如何优化前端渲染性能?
回答要点:
WebP
,懒加载。div div div
层级过深。async
或 defer
加载 JS。 示例:使用 requestAnimationFrame
优化动画
function animate() {
requestAnimationFrame(animate);
// 这里执行高性能动画
}
animate();
问题:HTTPS 为什么比 HTTP 更安全?
回答要点:
示例:HTTPS 加密过程
问题:Vue3 响应式系统如何实现?
回答要点:
Object.defineProperty
,Vue3 使用 Proxy
。Proxy
能监听 对象新增/删除属性,性能更优。示例:Vue3 响应式对象
import { reactive } from 'vue';
const state = reactive({ name: 'Alice' });
state.age = 25; // UI 会自动更新!
前端面试不仅考察 基础知识,还要求你能 灵活运用。本文结合 生动示例,让你在面试中不仅能答出 八股文,还能够 深入理解,从容应对各种问题!
如果你正在准备前端面试,建议:
希望本文对你的面试之旅有所帮助,祝你 面试成功!