外包面试经历总结
一、个人背景与经历
- 请简单介绍一下你的教育背景和工作经验?
- 能简单说一下你在开源项目Wot UI的贡献吗?
二、组件设计与性能优化(瀑布流专项)
- 能介绍一下高性能瀑布流的实现原理吗?
- 核心点:绝对定位布局 / Flex 列布局 / Grid 布局,以及动态计算高度。
- 瀑布流的数据加载机制是怎样的?
- 核心点:触底加载(IntersectionObserver),虚拟列表(Virtual List)优化大数据量渲染。
- 瀑布流使用什么 CSS 技术实现排版?
- 核心点:Multi-column (column-count) / Flexbox / Grid / Absolute Positioning。
- (关联问题)能介绍一下防抖和节流的区别吗?
- 场景:瀑布流滚动加载(节流)、窗口 Resize 重排(防抖)。
三、CSS 与布局
- 能说一下实现响应式布局的三种方案吗?
- 媒体查询 (
@media) - Flexbox / Grid 弹性布局
rem/vw/vh相对单位适配
- 媒体查询 (
四、JavaScript 核心基础
- 能解释下闭包的概念和应用场景吗?
- 能说说 let、const、var 的区别吗?
- 作用域(块级 vs 函数级)、变量提升、暂时性死区、重复声明、初始值。
- 能列举 ES6 数组和对象的新方法吗?
- 数组:map, filter, reduce, find, includes, flat...
- 对象:assign, keys, values, entries...
- 能比较下 Set 和 Map 数据结构吗?
- Set: 唯一值集合。Map: 键值对集合(键可以是任意类型)。
- 能说说箭头函数和普通函数的区别吗?
- this 指向、构造函数、arguments、prototype。
- 能解释下原型链的概念吗?
- 能描述下 event loop 的执行机制吗?
- 宏任务 (MacroTask) vs 微任务 (MicroTask)。
五、异步编程
- 能说说 Promise 的三种状态吗?
- Pending, Fulfilled, Rejected。
- 能比较 Promise.all 和 Promise.race 吗?
- all: 全部成功才成功,一个失败即失败。
- race: 谁快以谁为准(无论成功失败)。
六、 Vue 框架
- 能比较 Vue2 和 Vue3 的主要区别吗?
- 响应式原理 (Object.defineProperty vs Proxy)
- API 风格 (Options API vs Composition API)
- 生命周期、Diff 算法优化、Fragment、Teleport...
- 能说说 Vue3 中的组件通信方式吗?
- props / emit, provide / inject, Pinia / Vuex, expose / ref...
七、工程实践与软技能
- 能描述下你遇到的技术难点和解决方案吗?
- 如果与后端接口设计有分歧,如何处理?
八、反问环节
- 你对我们公司有什么想了解的?
面试覆盖范围总结
- 基础占比:约 50%(JS/CSS 基础、ES6、异步、原型链)
- 框架占比:约 20%(Vue2/3 差异、组件通信)
- 工程实践:约 20%(性能优化、组件设计、跨域处理、协作沟通)
- 开放问题:约 10%(项目难点、职业规划/反问)
