3.25模拟面试

发布于:2025-03-28 ⋅ 阅读:(30) ⋅ 点赞:(0)

一年经验前端面试(60 分钟)

面试时间约 60 分钟,涵盖基础知识(HTML、CSS、JavaScript)、Vue 3、工程化、项目经验等内容。


第一部分:自我介绍(5 分钟)

面试官问题:

  1. 请你简单介绍一下自己?(项目经历、技术栈、擅长的方向)

  2. 你最近在学习什么?为什么选择这个方向?

  3. 你在过去的项目中遇到过哪些挑战?你是如何解决的?


第二部分:HTML & CSS(10 分钟)

概念 & 理论(5 分钟)

  1. HTML5 有哪些新特性?

  2. 什么是 BFC(块级格式化上下文)?它的作用是什么?

  3. position: relative、absolute 和 fixed 的区别?

  4. 如何实现一个两栏/三栏布局?有几种方式?

手写代码(5 分钟)

实现一个圣杯布局(使用 Flex 或 float)

Left
Main
Right

(要求手写 CSS 并讲解原理)


第三部分:JavaScript & TypeScript(15 分钟)

概念 & 理论(8 分钟)

  1. var、let 和 const 的区别?

  2. 介绍一下 JavaScript 的执行机制?(事件循环、微任务 & 宏任务)

  3. call、apply、bind 的区别?

  4. Promise.all、Promise.race、Promise.allSettled 的区别?

手写代码(7 分钟)

  1. 手写一个防抖(debounce)函数

  2. 实现 Promise.all

示例代码:手写 debounce

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


第四部分:Vue 3(15 分钟)

概念 & 理论(8 分钟)

  1. Vue 2 和 Vue 3 的核心区别?

  2. ref 和 reactive 的区别?

  3. setup() 的执行时机是什么?

  4. watchEffect 和 watch 的区别?

手写代码(7 分钟)

手写一个 Vue 3 自定义指令(实现 v-focus)


第五部分:项目经验 & 工程化(10 分钟)

  1. 你在 Vue 项目中做过哪些性能优化?

  2. 你在项目中如何管理组件通信?(props、emit、mitt、provide/inject)

  3. 如何优化 Vue 3 的首屏加载速度?(按需加载、懒加载、SSR)

  4. 你在微前端(qiankun)项目中遇到过哪些问题?如何解决?


第六部分:开放性问题(5 分钟)

  1. 你如何提升自己的技术?平时如何学习?

  2. 你更倾向于前端的哪个方向?(工程化、性能优化、组件开发等)

  3. 你希望未来 1-2 年的职业发展是怎样的?


总结 & 建议

手写代码要熟练(防抖、节流、深拷贝、Promise)

Vue 3 重点掌握(组合式 API、生命周期、watchEffect)

项目经验要能深入讲解(优化点、遇到的坑、解决方案)

这样准备下来,一年经验的前端面试会更加稳妥!如果你想加强某个方向,可以告诉我,我可以再出一些针对性的题目!