拼多多前端实习面经

一面(4.19)

1.项目
2.组件自适应
3.手写防抖
function debounce(fn,delay) {
let timer
return function () {
let args = Array.prototype.slice.call(arguments)

clearTimeout(timer)
timer = setTimeout(()=>{

fn.apply(this,args)

},delay)

}
}

然后追问如何改写才能使得3次then获得相同的结果
我想不到,此处要@一个大佬
const fun = debounce()
fun().then()
fun().then()
fun().then()

4.原型链
5.apply的第二个参数可以是伪数组吗,我说伪数组会有问题(可以是伪数组的)
6.伪数组如何转成数组
Array.slice
Array.from
数组解构
7.styled-components的原理,里面有scoped包裹(类似vue 的style的scoped)
8.对框架的感受
9.js隐式转换
10.隐式转换遇到过哪些坑

二面(4.27)

1.自我介绍
2.每个项目中遇到的问题及解决方案
3.多页面通信的方法
4.Vue和React的异同
    重点:
    vue和react diff算法差异
    vue3怎么优化diff算法
    指定key和不指定key的diff算法有什么不同
    vue和react怎么实现驱动试图更新,什么区别,为什么会有这种区别(随便说的,已经答蒙了)
    vue2修改数组如何更新视图
    vue3新特性
        react hooks和compsitions api有什么不同(只说上了依赖收集的不同)
     虚拟DOM是什么,优点是什么
        性能
        跨端
        (知道的大佬可以补充一下)   
      浏览器渲染过程
      重排重绘
              什么操作会造成重绘
              减少重绘的方法
5.TS中unknown和any的区别
6.浏览器跨域,问题的解决方法
        代理服务器能跨域吗?为什么能访问代理服务器
        jsonp如何实现的
        CORS通过什么控制跨域,简单请求和非简单请求
7.http协议,http2相对于http1有哪些改进
        解决队头阻塞
        服务端推送
        头部压缩
        多路复用
        发送的是二进制数据
8.浏览器缓存(强缓存和协商缓存)
        Etag和modifysince的区别
9.事件循环,微任务和宏任务有哪些,说完就做一道题
10.手撕leetcode重排链表算法
    1-2-3-4-5=>1-5-2-4-3
    面试官提示下想到了思路:找到链表中点,将中点后的子链表反转,将子链表合并到前面分割的链表(中点之前的链表)
    最终没写出来有点遗憾,觉得过不了了,然后第二天下午就收到三面通知

三面主管面(5.6)

1.自我介绍
2.项目难点
3.react hooks和class组件的区别,为什么要用hooks(只说上了逻辑抽取,面试官说class组件也可以,我就不知道怎么说了)
4.vue3和vue2的区别
5.为什么要用axios,axios做二次封装的实现(promise)
6.手撕leetcode算法题(简单)
7.手写一个发布订阅模式
8.反问

过了一星期发了感谢信,我估计是前面的问题没答好,悲哀

收起全文
#拼多多前端面经##面经#
全部评论
不知道面试结果如何
1 回复
分享
发布于 2022-04-26 14:43
使得3次then获得相同的结果,这个是指什么结果  没太看懂
点赞 回复
分享
发布于 2022-08-08 00:27
滴滴
校招火热招聘中
官网直投

相关推荐

8 29 评论
分享
牛客网
牛客企业服务