四月面试复盘(健康160,飞书)

601 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第22天,点击查看活动详情

健康160

  1. 项目中有什么难点
  2. bus 与 vuex 使用边界
    • bus 适合稍微复杂的单页应用
    • vues 适合中大型项目
  3. 响应式布局方案(rem, vh vw),怎么实现 rem
  4. sass 变量与 css 变量 区别
  5. Vue 优缺点
  6. tree-shaking 原理,优缺点,什么时候不能tree-shaking
  7. Vue 为什么不监听数组下标
  8. 为什么要区分宏任务微任务,事件循环
  9. 资源加载错误监控
  10. weakSet weakMap 如何实现弱引用
  11. Promise 规范和设计
  12. jQuery 如何实现链式调用
  13. async / await 原理
  14. UMD模块规范
  15. grid flex 实现九宫格
  16. 回流的影响,如何避免

飞书

一面

// 看代码说输出
var a = 0
var total = 0
var result = []
function foo(a) {
  var i = 0
  for (; i < 3; i++) {
    result[i] = function () {
      total += i * a
      console.log(total)
    }
  }
}

foo(1)
result[0]()
result[1]()
result[2]()
// 随机化数组
function getArray(n) {
  const result = []
  for (var i = 0; i < n; i++) {
    result[i] = i
  }
  for (let i = 0; i < n; i++) {
    const rand = i + Math.floor((n - i - 1) * Math.random())
    swap(result, i, rand)
  }
  return result
}

function swap(arr, i, j) {
  const temp = arr[i]
  arr[i] = arr[j]
  arr[j] = temp
}
// 最长不重复子串长度
function find(s) {
  let i = 0
  let j = 0
  let n = s.length
  let max = 0
  const set = new Set()
  while (i < n) {
    const ch = s[i]
    while (set.has(ch)) {
      set.delete(s[j++])
    }
    set.add(ch)
    i++
    max = Math.max(max, i - j)
  }
  return max
}
// 看代码说输出
async function async1() {
  console.log('2')
  await async2()
  console.log('7')
}
async function async2() {
  console.log('3')
  return new Promise(function (resolve, reject) {
    resolve()
    console.log('4')
  })
}

setTimeout(() => {
  console.log('10')
})

console.log('1')

async1()

new Promise(function (resolve, reject) {
  console.log('5')
  resolve()
})
  .then(function () {
    console.log('8')
  })
  .then(function () {
    console.log('9')
  })

console.log('6')
  1. Vue 响应式原理 Vue2 和 Vue3 的区别
  2. keep-alive 的原理
  3. Vue 优缺点
  4. Vue 生命周期
  5. Vue3 的改进
  6. scoped 怎么实现
    • 给HTML的DOM节点加一个不重复属性data-v-469af010标志唯一性
    • 在添加scoped属性的组件的每个样式选择器后添加一个等同与“不重复属性”相同的字段,实现类似于“作用域”的作用,不影响全局
    • 如果组件内部还有组件,只会给最外层的组件里的标签加上唯一属性字段,不影响组件内部引用的组件
  7. HTTP 内容包含什么
  8. HTTPS 与 HTTP 的区别
  9. dns 解析

二面

  1. 项目难点
  2. webworker 传输大数据如何处理
  3. 设计模式,适配器模式,外观模式,代理模式区别
  4. hello! A: hello,B:hello world! 期望得到什么
  5. 给定一个数 n,如 23121,给定一组数 A,{2, 4, 9},返回用 A 可以组成的小于 n 的最大数,A 不为空,答案 22999 (没写出来,卡住了,尴尬)
  6. 闭包如何产生,为什么不会被回收(答得不好)

三面

  1. 项目担任的角色
  2. 项目优化的量化指标是什么
  3. 最小的正整数(只写出了hash版本)
  4. js垃圾回收机制,回收算法
  5. 什么是脚本语言,弱类型语言是怎么实现的
  6. 怎么理解什么是高质量的代码
  7. 为什么要参与代码规范制定,做过哪些技术分享
  8. 说一下项目难点
  9. 近段时间有在学习吗
  10. 阅读源码的中有哪些是值得记录的亮点