百度 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- 问项目