拼多多 拼越计划 前端 一二三面+hr面 已oc
一面 08-02(一小时20分钟)
1 自我介绍
2 介绍一下学校的生活和实习做过的项目
3 对于前端工程化的理解
4 浏览器是如何渲染页面的,最好从浏览器的架构分析一下?
5 chrome的v8执行js代码为什么比较高效?
6 es6提出的块级作用域是解决什么问题的,最好结合一下js调用栈说明
7 由6问题引申,那么闭包的原理是什么,和js调用栈的关系?
8 请简述你对前端性能优化的理解
9 微信小程序实现组件化的方式和React Vue一样吗?那么小程序是用什么实现的?
10 微信小程序的rpx单位如何做到自适应页面?
11 浏览器第二次加载页面为什么会比第一次快?说明一下原因
12 由11引申 那么浏览器的缓存机制是如何工作的?
13 代码题:实现一个仅执行一次/一天/一周/一个月仅执行一次的函数
首先实现了一个只会执行一次的函数
let once = function(fn) { let caller = true; return function() { if(caller) { caller = false fn.apply(this, arguments) } } } let onlyOne = once(function(){ // 代码 });借助cookie实现,感觉实现的有点问题 欢迎大神指正
const onceByCookie = (fn) => { Cookies.set('flag',true,{expires: 1}); return function(){ if(Cookies.get('flag')){ Cookies.set('flag',false,{expires: 1}); fn.apply(this, arguments); } } }
14 代码题:实现一个header组件的横向布局,并且每个元素文本超出内容显示...(类似web端淘宝的顶部导航栏)
.list{ display: flex; width: 800px; height: 300px; justify-content: center; align-items: center; flex-direction: row; flex-wrap: wrap; border: 1px solid black; } .item{ width: 50px; height: 30px; padding: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }15 简述一下什么是BFC 如何生成一个BFC?
16 反问环节
二面 08-10(一小时30分钟)
1 自我介绍
2 你认为小程序框架和React框架有什么不同?
3 一直问项目的业务逻辑和实现
4 什么是AST?是做什么的?
5 浏览器为什么不可以跨域,如何实现跨域?
6 什么是虚拟DOM?解决了什么问题,虚拟DOM有什么问题?
7 js为什么会有变量提升?let和const是如何解决变量提升的?
8 js的作用域链是根据什么生成的?那么this又解决了什么问题?
9 代码题 实现求n个数组的交集(默认传入的参数都是数组,如果不是在reduce中增加判断就可以)
const fn = (...args) => { return [...new Set(args.reduce((pre,cur) => { pre = pre.concat(cur); return pre; },[]))]; }10 手写promise 原题是设置一个函数,可以实现延迟执行promise,间隔时间按传入参数决定,但是只写了一半。。
于是面试官给了一个简单的:实现一个场景 三轮面试 每次面试依据上一次面试的结果
function interview(round){ return new Promise((resolve, reject) => { setTimeout(() => { // 随机概率 round记录面试轮次 if(Math.random() * 10 > 5){ resolve(); } else { let err = new Error('fail'); err.round = round; reject(err); } }, 300) }) }; const p = interview(1).then(() => { return interview(2); }).then(() => { return interview(3); }).then(() => { console.log("success!"); return 'success'; }).catch((err) => { console.log("fail ", err.round + ' round'); return new Error('fail'); });11 反问环节
08-22三面 (35分钟)
1 自我介绍
2 为什么选择前端岗位
3 介绍一下你接触过的技术栈
4 React的源码有看过吗?或者介绍一下React的一些运行原理
5 React和Vue你认为有什么不同
6 前端的性能优化有没有做过?或者介绍一下思路。
7 Chrome V8引擎是如何编译执行js的?介绍一下具体步骤。
8 计算机基础怎么样?学过哪些课程?
9 网络进行读写操作时,cpu的占用高吗?为什么?
10 写一个动态规划问题:字符串变化的最小步骤
11 你的职业规划是什么?
12 有喜欢的城市或者工作地点吗?
13 反问环节
08-26 hr面(25分钟)
1 自我介绍
2 你如何评价你的实习经历?
3 如果美团给你实习转正你愿意留下吗?可以说一下原因吗?
4 你认为学校生活和工作有什么不一样?
5 你对拼多多有多少了解?
6 拼多多这边的工作强度是会被其他公司要大的,当然待遇也是要高很多的 你可以接受吗(我tm)
7 你对工作的base地点有要求吗?
8 你对前端的哪个技术方向感兴趣?喜欢做B端还是C端?
9 我看你这边是通过了英语四级,那为什么没有考六级呢?(我tm)
10 你怎么评价你的研究生生活?
11 你有女朋友吗?(你管得着吗?)
12 反问环节
9-23意向书到