跳到主要内容

百度 TPG 质量效能部

一面

4.21 11:00 四十分钟

  • 二叉树的前序遍历(不了解二叉树,跳过了)
  • 链表的排序(暴力出来,面试官似乎不太满意)
  • 还用过 ES6 的哪些其他新特性
  • 用 Promise 实现 delay 函数
  • 用 async await 实现一个请求函数
  • 写一个 Promise.all 的示例
  • async 的原理
  • 说一下与 flex 相关的一些属性
  • 想要一个 flex 元素不能收缩,也不能扩展,应该怎么做
  • useEffect 具体是什么作用,做了什么事情
  • useMemo 的 dependences 里有什么数组,假如这个数组里的元素变了会更新 useMemo 的缓存吗
  • 在什么场景下会用到 pinia
  • 为什么要写单元测试
  • 问项目

二面

4.21 15:00 时长一小时

  • 居中,尽量说的多一些
  • CSS 优先级
  • 如何触发 BFC
  • 说一下 Promise 的 API 吧
  • 说一下数组 API 吧
  • Array.prototype.some 和 Array.prototype.every 有啥区别
  • 说一下对象的 API
  • 说一下常用的 React API
  • 讲一下 forwardRef 是干什么的
  • useMemo 与 useCallback 有什么区别
  • React 18 用过吗
  • Vue 中 watch 与 computed 有什么区别
  • 以你现在的理解或者了解到的,来猜测一下 computed 是怎么做到缓存值的
  • 代码题(只记得大概):轮询向接口 /loginVadiate 发送请求,直到用户已经登录,已登录返回 {code: 200, msg: 'login'},未登录返回 {code: 500, msg: 'not login'},失败返回 {code: 300, msg: 'fail'}
  • 写正则,匹配邮箱,匹配 url
  • 改代码:下面代码的逻辑是错误的,按你的理解,它应该实现什么功能,并修改
const promiseArray = [1, 2, 3].map((num) => {
return new Promise((resolve) => {
setTimeout(() => {
console.log(num)
resolve()
}, 1000)
})
})
// ----> 1
// ----> 2
// ----> 3
js
  • 问项目