shopee-供应链
一面
代码题
- 页面几乎同时发出请求,向同一个接口发出的请求,模块1是
api/list?id=1
,2是api/list?id=2
,n是api/list?id=n
,针对这种情况,设计一个request方法,将多次请求合并,智慧向后端发出一个请求api/list?id=1,2,...n
js
const res1 = await requestUser(1)
const res2 = await requestUser(2)
const res3 = await requestUser(3)
// 我感觉这题出得有问题,用了await异步代码变同步,后两个执行 要等第一个执行完才开始
// 我觉得 当时面试官的意思是这样,因为我是按下面的理解给的解法
requestUser(1).then(res1=>{})
requestUser(2).then(res2=>{})
requestUser(3).then(res3=>{})
- setTimeout(fn1,0),process.nextTick(fn2),Promise.resolve().then().then(fn3) 执行顺序
- setTimeout(fn1,0),setImmediate(fn2)谁先执行
性能优化
- 如何计算/查看页面首次可交互时间
- 如何优化静态资源加载,有哪些方案
JS
- js的异步机制
- 说一下event loop
- 有哪些微任务
- process.nextTick是微任务吗
- 什么是提升,有什么作用
- 什么是暂时性死区
- 如果我在声明前使用let的变量会有什么问题
Vue
- 数据双向绑定实现原理
- 如何监听的数组的变动
- 事件绑定实现的原理
其它
- 对MVVM,MVC,MVP架构的认识