一年经验前端面试(60 分钟)
面试时间约 60 分钟,涵盖基础知识(HTML、CSS、JavaScript)、Vue 3、工程化、项目经验等内容。
第一部分:自我介绍(5 分钟)
面试官问题:
请你简单介绍一下自己?(项目经历、技术栈、擅长的方向)
你最近在学习什么?为什么选择这个方向?
你在过去的项目中遇到过哪些挑战?你是如何解决的?
第二部分:HTML & CSS(10 分钟)
概念 & 理论(5 分钟)
HTML5 有哪些新特性?
什么是 BFC(块级格式化上下文)?它的作用是什么?
position: relative、absolute 和 fixed 的区别?
如何实现一个两栏/三栏布局?有几种方式?
手写代码(5 分钟)
实现一个圣杯布局(使用 Flex 或 float)
(要求手写 CSS 并讲解原理)
第三部分:JavaScript & TypeScript(15 分钟)
概念 & 理论(8 分钟)
var、let 和 const 的区别?
介绍一下 JavaScript 的执行机制?(事件循环、微任务 & 宏任务)
call、apply、bind 的区别?
Promise.all、Promise.race、Promise.allSettled 的区别?
手写代码(7 分钟)
手写一个防抖(debounce)函数
实现 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 分钟)
Vue 2 和 Vue 3 的核心区别?
ref 和 reactive 的区别?
setup() 的执行时机是什么?
watchEffect 和 watch 的区别?
手写代码(7 分钟)
手写一个 Vue 3 自定义指令(实现 v-focus)
第五部分:项目经验 & 工程化(10 分钟)
你在 Vue 项目中做过哪些性能优化?
你在项目中如何管理组件通信?(props、emit、mitt、provide/inject)
如何优化 Vue 3 的首屏加载速度?(按需加载、懒加载、SSR)
你在微前端(qiankun)项目中遇到过哪些问题?如何解决?
第六部分:开放性问题(5 分钟)
你如何提升自己的技术?平时如何学习?
你更倾向于前端的哪个方向?(工程化、性能优化、组件开发等)
你希望未来 1-2 年的职业发展是怎样的?
总结 & 建议
手写代码要熟练(防抖、节流、深拷贝、Promise)
Vue 3 重点掌握(组合式 API、生命周期、watchEffect)
项目经验要能深入讲解(优化点、遇到的坑、解决方案)
这样准备下来,一年经验的前端面试会更加稳妥!如果你想加强某个方向,可以告诉我,我可以再出一些针对性的题目!