【拼多多】前端实习一面+二面

【拼多多】前端实习一面

4.20一面

自我介绍
看题写输出
function Foo() {
            Foo.a = function () {
                console.log(1)
            }
            this.a = function () {
                console.log(2)
            }
        }
        Foo.a = function () {
            console.log(4)
        }
        Foo.a() //4
        let obj = new Foo();
        Foo.prototype.a = function () {
            console.log(3)
        }
        obj.a() //2
        Foo.a()//1
async function async1() {
            console.log('async1 start')
            await async2()
            console.log('async1 end')
        }
        async function async2() {
            console.log('async2')
        }
        console.log('script start')
        setTimeout(function () {
            console.log('setTimeout')
        }, 8)
        async1()
        Promise.resolve(1)
            .then(res => {
                console.log('promise1', res)
            })
            .then(res => {
                console.log('promise2', res)
                return Promise.reject(1)
            })
            .then(res => {
                console.log('promise3', res)
            })
            .catch(e => {
                console.log('promise4', e)
            })
            .then(res => {
                console.log('promises', res)
            })
        console.log('script end')

        // script start
        // async1 start 
        // async2
        // script end⭐ 
        // async1 end
        // promise1 1
        // promise2 undefined 
        // promise4 1
        // promise5 undefined  ⭐catch后仍有输出
        // setTimeout


  1. 如何理解SPA,SPA缺点是什么
  2. Vue这些框架相比于jquery这些优点是什么,你怎么理解MVVM
  3. vue中的key作用是什么,好处是什么,不用key会发生什么
  4. 防抖节流
  5. 说说路由懒加载
  6. 懒加载是针对的是路由还是组件?答路由(页面❌),面试官纠正说是组件
  7. 说说elementUI,理解它的原理吗❌
  8. 算法题:leetcode原题:有效的括号(https://leetcode-cn.com/problems/valid-parentheses/)+ 两数之和(https://leetcode-cn.com/problems/two-sum/

【拼多多】前端实习 二面

时间:2022.04.26
  1. 项目上线了吗
  2. 你对工程化理解
  3. options请求 ❌
  4. BFC
  5. vue原理(MVVM+defineProtoperty+发布订阅模式)
  6. vue2的defineProtoperty和vue3的proxy代理的区别
  7. 项目中如何做的二次封装axios
  8. 知道哪些设计模式 
  9. 说说享元模式 ❌

做题:

  1. 手写instanceof ❌
  2. 手写promiseAll
  3. 手写Array.Prototype.isArray方法和Array.Prototype.flat(depth)方法
第一题不会写,二三两道写出来了,但是出现一些细节问题,面试官说编码能力不太够。

反问:

  1. 几轮技术面:答可能两轮
  2. 技术栈:react
  3. 业务方向:B端,开发面向商家的平台,复杂度高,挑战性大
  4. 面试表现点评

2022.04.29官网显示流程终止

拼多多流程一般是周二面试,周五出结果,通过了会发面试邀约,没通过会在官网显示的。
跟拼多多说再见了,经过这笔试+两轮面试,发现拼多多前端开发的题目真的挺友好的,笔试是前端基础题目,几乎没有算法题,面试考的也是注重基础,相比于其他大厂来说算是简单了的,面试官都挺年轻,而且非常友好,很有耐心,提的建议也很有建设性,体验很好。希望秋招再战吧!各位加油!



#拼多多暑期实习##实习##面经##前端##拼多多#
全部评论
两数之和是two sum么..
点赞 回复 分享
发布于 2022-04-24 12:29

相关推荐

        顺丰二面面经续集。1.monorepo的各个子应用是独立打包的吗?        有在字节实习的uu应该都接触过monorepo。我是进去之后才知道这个东西,但对他的原理也不明白,今天跟大家一块了解一下。        首先什么是monorepo。我个人理解monorepo是一个将不同项目的代码放在同一个代码仓库中组织起来的一种方式。可以想象github中的一个仓库中有很多小项目的代码文件。这些项目虽然有可能是相关的,但通常在逻辑上是独立的,并由不同的团队维护。像我之前实习时的项目仓库使用monorepo,仓库中既有web前端的代码,也有小程序前端的代码。        monorepo有什么好处?1.多个项目之间需要共享代码、组件或者工具库时,monorepo比较简便。使用monorepo就不需要将想要共享的部分发布npm包再去别的项目中安装,而是有一个share目录,专门放置共享的组件或方法等。2.统一依赖版本管理时更好的确保一致性。3.根目录下有一个package.json,每个项目也有自己的package.json,通过在根目录下npm install,它会自动安装所有子项目的依赖。4.在开发的时候,省去了在多个代码仓库之间切换的麻烦。还有很多优点,比如统一的CI/CD,统一的构建流程......        再谈谈不好的点。从我自己的使用角度来说,刚开始最常见的问题就是更新依赖时很容易改变了其他子项目的依赖,在全局npm install或者一些api update的时候,会给所有子项目都更新,但是可能版本更新会给别的项目带来不可预见的问题,这也是为什么需要code review,把这些不是你应该改动的东西要改回去。除此之外,打包构建需要专门优化,否则会出现打包时间过长。        那么回到monorepo的子项目是否是独立打包这个问题。要知道monorepo的每个子项目都是可以独立开发、部署、构建...试想如果只有其中一个子项目fix了一个线上bug,但是整个项目都要重新打包发布那么整个流程岂不是太过冗杂了,所以一定是可以独立打包独立安装才有足够灵活性的。但是能独立打包并不意味着你的项目中的子项目都是独立打包的,具体还要看是否在子项目package.json中配置了打包脚本。2.setState是同步还是异步        拷打完项目就开始拷打原理了。这个问题当时没记住啊,恨自己没多看两篇文章。        首先要知道这个同步和异步跟我们所谓的js同步任务异步任务不一样,是指调用setState后能否马上得到更新后的值,即是否立即调用render 函数渲染视图。        在react18之前,在react 可调度范围内的setState 就是异步的,反之,则为同步。什么是可调度范围?react 合成事件内同步执行的setState 就是可调度范围。什么是react 可调度范围外呢?宏任务:setTimeout ,微任务:.then ,或直接在DOM元素上绑定的事件等都是react 可调度范围外。        在react18中多了批处理功能(当 React 在一个单独的重渲染事件中批量处理多个状态更新以此实现优化性能),这意味着之前没办法批处理的情况都可以批处理了。在每次setstate时会产生一个优先级标志lane,对于相同优先级的多次更新任务,react实际只会复用第一个调度任务,在一次批量更新结束后才会更新实际变量的值。相同优先级的setState是异步执行的,而不同优先级则是同步的。        需要注意的是,由于js的闭包特性,同一份代码在类组件和函数组件中的执行结果是有差异的。        详细源码理解推荐以下链接(彻底搞懂setState到底是同步还是异步1,2,3):        https://blog.csdn.net/y_ang_1/article/details/136941891?spm=1001.2014.3001.5502        https://blog.csdn.net/y_ang_1/article/details/137151783?spm=1001.2014.3001.5502        https://blog.csdn.net/y_ang_1/article/details/137151803?spm=1001.2014.3001.55023.react的任务优先级策略,以及哪些任务优先级比较高?        这么多场面试,这是唯一一个问了这个问题的面试官,不得不说是有水平和经验的。东西太多了,我水平也不够,帖个帖子:https://juejin.cn/post/7207406497508114489        涉及原理的内容确实很难理解和掌握,多看点帖子多看点源码吧。        如果大家觉得对自己有帮助,感谢大家点赞收藏送花评论!希望大家意向多多offer多多!#软件开发##软件开发2024笔面经##前端##顺丰#
查看3道真题和解析 软件开发2024笔面经
点赞 评论 收藏
分享
评论
3
22
分享
牛客网
牛客企业服务