Skip to content

外包面试经历总结

一、个人背景与经历

  1. 请简单介绍一下你的教育背景和工作经验?
  2. 能简单说一下你在开源项目Wot UI的贡献吗?

二、组件设计与性能优化(瀑布流专项)

  1. 能介绍一下高性能瀑布流的实现原理吗?
    • 核心点:绝对定位布局 / Flex 列布局 / Grid 布局,以及动态计算高度。
  2. 瀑布流的数据加载机制是怎样的?
    • 核心点:触底加载(IntersectionObserver),虚拟列表(Virtual List)优化大数据量渲染。
  3. 瀑布流使用什么 CSS 技术实现排版?
    • 核心点:Multi-column (column-count) / Flexbox / Grid / Absolute Positioning。
  4. (关联问题)能介绍一下防抖和节流的区别吗?
    • 场景:瀑布流滚动加载(节流)、窗口 Resize 重排(防抖)。

三、CSS 与布局

  1. 能说一下实现响应式布局的三种方案吗?
    • 媒体查询 (@media)
    • Flexbox / Grid 弹性布局
    • rem / vw / vh 相对单位适配

四、JavaScript 核心基础

  1. 能解释下闭包的概念和应用场景吗?
  2. 能说说 let、const、var 的区别吗?
    • 作用域(块级 vs 函数级)、变量提升、暂时性死区、重复声明、初始值。
  3. 能列举 ES6 数组和对象的新方法吗?
    • 数组:map, filter, reduce, find, includes, flat...
    • 对象:assign, keys, values, entries...
  4. 能比较下 Set 和 Map 数据结构吗?
    • Set: 唯一值集合。Map: 键值对集合(键可以是任意类型)。
  5. 能说说箭头函数和普通函数的区别吗?
    • this 指向、构造函数、arguments、prototype。
  6. 能解释下原型链的概念吗?
  7. 能描述下 event loop 的执行机制吗?
    • 宏任务 (MacroTask) vs 微任务 (MicroTask)。

五、异步编程

  1. 能说说 Promise 的三种状态吗?
    • Pending, Fulfilled, Rejected。
  2. 能比较 Promise.all 和 Promise.race 吗?
    • all: 全部成功才成功,一个失败即失败。
    • race: 谁快以谁为准(无论成功失败)。

六、 Vue 框架

  1. 能比较 Vue2 和 Vue3 的主要区别吗?
    • 响应式原理 (Object.defineProperty vs Proxy)
    • API 风格 (Options API vs Composition API)
    • 生命周期、Diff 算法优化、Fragment、Teleport...
  2. 能说说 Vue3 中的组件通信方式吗?
    • props / emit, provide / inject, Pinia / Vuex, expose / ref...

七、工程实践与软技能

  1. 能描述下你遇到的技术难点和解决方案吗?
  2. 如果与后端接口设计有分歧,如何处理?

八、反问环节

  1. 你对我们公司有什么想了解的?

面试覆盖范围总结

  • 基础占比:约 50%(JS/CSS 基础、ES6、异步、原型链)
  • 框架占比:约 20%(Vue2/3 差异、组件通信)
  • 工程实践:约 20%(性能优化、组件设计、跨域处理、协作沟通)
  • 开放问题:约 10%(项目难点、职业规划/反问)