我的2021前端实习春招,京东、阿里、美团、百度、网易面经
春招历程回顾
2021.2.26 京东前端开发实习生2021.3.1 奇岱松笔试
2021.3.2 奇岱松视频面试。凉...
------------------------------------------------------
2021.3.4 阿里提前批,电话一面
2021.3.12 阿里提前批,电话二面。凉...
2021.3.22 第二次投递阿里
2021.3.31 阿里电话一面
2021.4.6 阿里视频二面
2021.4.9 阿里电话三面
2021.4.13 阿里hr面
2021.4.13 阿里录用意向书
------------------------------------------------------
2021.3.23 投递网易
2021.4.10 网易笔试
2021.4.13 网易视频一面
2021.4.19 网易视频二面
2021.4.23 网易HR面
等结果
------------------------------------------------------
2021.3.25 投递美团
2021.3.26 美团笔试,5道编程题
2021.4.1 美团视频一面,在牛客网上。
2021.4.7 美团视频二面
2021.4.16 HR打电话说面试通过,如果要来美团就走一下offer流程
------------------------------------------------------
2021.3.28 投递百度
2021.3.30 百度笔试
2021.4.11 百度视频一面、二面、三面,连续面试
等结果
------------------------------------------------------
总结:
京东、阿里、美团面试通过
面经汇总
京东
京东一面,2021.2.26
-
自我介绍
-
vue-router跳转方式有哪些
-
vue-router的路由管理模式
-
vue-router添加参数
-
介绍一下vuex
-
vuex中如何组合使用多个 action
-
async、await和promise
-
JS中的...的运算符都有哪些,作用
-
问react(没有学过)
-
微信小程序定义一些全局数据
-
小程序分享
- 还有一些其它小程序的问题(因为我简历上写了小程序的项目),记不清了
京东二面,2021.2.28
-
自我介绍
-
介绍一下vue商城项目
-
怎么进行功能的划分
-
history模式和hash模式的区别
-
遇到哪些技术难点,怎么解决的
-
拿到一个需求后,前端要做什么
-
一个完整项目的开发流程介绍一下(面试官实际是分开问的,问了几个小问题,还是循序渐进问的,具体的提问方式记不太清了)
-
css让一个元素居中都有哪些方法(margin:0 auto、设置flex布局、text-aligin、定位)
-
如果用定位居中的话,子元素的宽高不确定怎么办(没有答出来,面试官最后说可以用transform)
- 介绍一下微信小程序的这个项目(小程序已经上线了,然后面试官边用边问的问题)
-
样式UI都是自己写的吗?(我使用了vant)
-
怎么获取的用户数据?
-
用户信息保存到哪里了?(云开发的云数据库)
-
数据库中的集合(表)是自己设计的吗?难吗?
-
开发这个小程序的时候使用了组件化开发吗?(这里面试官直接去GitHub上看我提交的小程序源码了,就问了这样一个问题)
-
有些应用里边有换肤这个功能,可以改变全局的样式,在小程序里这个效果怎么实现
-
JS中的数据类型都有哪些
-
怎么把字符串进行反转(我回答的是,str.split('').reverse().join(''))
-
反转字符串有没有其它方法?
-
你刚才的反转方法有没有可以优化的地方(没想出来,其实可以用...扩展运算符)
-
有没有其它项目?然后面试官共享屏幕,打开了我的github,然后我都说了一下里边的仓库
-
学的专业课都有哪些?前端是怎么学的?确定要走前端路线吗?有什么规划吗?
-
(应该还有一些问题,总感觉自己没有写完,但是想不起来了)
- 你有什么要问我的问题吗?
过了~
阿里
阿里提前批一面,2021.3.4
- 自我介绍,要求重点说一下前端的学习路径,怎么学习前端的
-
职业规划,你觉着自己会一直做前端吗
-
简历上获奖经历的一些提问
-
你都知道哪些设计模式
-
订阅者模式大致介绍一下
-
JS的变量提升
-
==和===
-
对于一个盲人用户来讲,如何实现页面元素不可见,但是仍然能够被阅读器识别?
-
我们使用函数传参的时候传递的是值还是引用?
-
说一下,cookie、sessionStorage、localStorage的区别,然后是一系列围绕cookie、sessionStorage、localStorage的问题
-
你的博客里边主要介绍的是一些概念性的东西,那么实战方面为什么记录的这么少?你写博客的初衷是什么?为什么想要写博客?面试官打开了我的csdn博客,边看边问的
-
页面中引入css文件的时候,为什么一般都放在header里边
-
css的长度单位,px、em等都有了解吗、移动端的自适应
-
http协议有了解吗,http的状态码
-
缓存失效了怎么弄
- 反问
最后整体的面试结果是面试官评价我对于JS的掌握还不错,但是对HTML,CSS还不太好,还有数据结构算法,设计模式相关的内容,然后建议我多看书,视频里讲的不全,技术基础扎实才能乘风破浪。
阿里提前批二面,2021.3.12
-
自我介绍
-
vue商城项目介绍
-
遇到的最大问挑战是什么
-
封装过的哪些组件比较复杂
-
添加商品到购物车怎么实现
-
添加商品到购物车有一个动画怎么实现。。。
-
小程序项目介绍
-
小程序项目遇到的最大难点是什么
-
vue-router介绍
-
hash模式和history模式的区别
-
操作系统检测死锁的方法。。。
-
tcp和udp的区别
-
tcp是怎么保证安全的。。。
-
tcp的拥塞控制和流量控制。。。
-
常见的排序算法。。。
-
快速排序和堆排序的区别。。。
- 反问
当时我的计算机网络、数据结构和算法等知识非常的辣鸡,这次面试回答的很不好,挂掉也在意料之中。但是挂掉还是难受啊,于是我又连续投递了网易、美团、百度。接下来的一段时间,针对这次阿里面试回答的不好的知识点,我去重点复习了一下。过了几天,成功收到了阿里的感谢信~~~又过了几天,收了阿里的一封邮件,说可以选择第二、第三志愿,于是我在2021.3.22第二次投递阿里,开始了新一轮的面试......
阿里一面,2021.3.31
-
自我介绍
-
搜索之后展示商品列表,会有哪些性能问题……一些项目问题,如果没有一些实战经验,真的很难答出来
-
移动端滑动问题
-
如何判断用户是否滑动了页面底部
-
小程序项目有后端的支持吗?操作数据库写sql语句了吗
-
小程序的setData()是怎么实现数据响应式的,我不会,然后说了vue2的响应式是怎么实现的
-
vue2和vue3的数据响应式实现原理。(如果只是简单的了解,理解的不深,很容易被问住)
-
v-if和v-show的区别
-
webpack的loader和plugin的区别,这些loader和plugin你都用过吗
-
webpack3和webpack4的区别
-
页面中怎么隐藏元素
-
使用flex布局实现一个田字布局
-
es7的新特性,async和await
-
使用async,await和promise实现定时器
-
解释一下闭包的概念
-
闭包会有哪些问题?如何定位追踪这些问题
-
浏览器的调试工具用过吗?除了打断点和看调用栈?performance工具用过吗?都能干什么
-
tcp的三次握手
-
讲一下快速排序
-
最近读了哪些书,哪些书对你影响比较深刻
-
为什么要走前端路线
- 反问
个人感悟:
这次面试我给自己带坑里了,面试官问搜索之后展示商品列表,会有哪些性能问题。我扯到了自己不会的滑动问题,然后面试官就问滑动问题……如果在回答一个问题的时候,发现可以讲到另一个自己熟悉的领域,那么提一下对应的关键词,表明自己知道,说不定面试官接下来就问你那块知识了。当然如果自己不熟悉可以不提了,免得面试官追着问把自己带坑里了。
这次面试,有些问题我确实不怎么会,就说了一下自己的想法,没想到还真的扯到点上了。平时学习的过程中还是需要增加实战经验,自己多做一些东西,哪怕是小demo,这样理解的更加深刻,对于面试管现场出的一些问题也好应对。
阿里二面,2021.4.6
-
自我介绍
-
自学前端是怎么自学的?主要通过哪些途径
-
浏览器输入url到页面中显示信息的过程说一下(我说了DNS协议、TCP建立连接、页面渲染的过程、重绘和回流)
-
你用过哪些重绘和回流的优化机制?
-
css的盒模型
-
内边距和外边距重叠会重叠吗? ---> 父元素的内边距和子元素的外边距不会重叠。同属于一个BFC的上下两个块级元素的外边距会重叠。
-
flex布局
-
不用flex怎么实现两栏布局
-
使用table实现两栏布局有什么缺点?
-
微信小程序中的setData方法是如何实现,我不会,就说了vue2是如何实现响应式的
-
虚拟DOM和diff
-
this的指向问题
-
apply、call和bind方法的区别
-
ES5中没有bind方法,怎么自己实现一个?
-
跨域问题是什么,怎么解决
-
使用Access-Control-Allow-Origin为什么可以解决跨域问题
-
用户登录前后端怎么实现?
-
cookie中保存的有密码吗?
-
ES5中原型链实现继承的机制。
-
常见的排序算法和时间空间复杂度
面试官说我语速太快,不要着急嘛,逻辑要更清晰一点。
视频面试时就不要老是低头了。电话面试时可以带着纸笔写一些东西,视频面试一直低头写写画画容易引起面试官的怀疑。
阿里三面,2021.4.9
-
自我介绍
-
为什么要走前端路线
-
怎么学习前端
-
小程序的项目大致介绍一下
-
做项目的过程中遇到了哪些难点重点
-
cookie和localStorage的区别,平时用缓存这些技术了吗
-
跨域是怎么解决的
-
你身边有没有令你敬佩的人?你觉得你俩的差距在哪里
- 你认为你的优点和不足之处都有哪些?
阿里HR面,2021.4.13
-
介绍一下做的项目
-
哪个项目令你印象深刻,有什么收获
-
之前有实习吗
-
准备考研吗?之后有考研意向吗?为什么不考研?
-
个人优势和缺点
-
工作地点问题
-
反问
过了
百度
2021.3.28投递简历,3.30笔试,4.11面试。百度面试是连着面的,如果当前面试通过了,下一面也会马上开始,所以我在4.11那天连续进行了三场百度面试,面完了
百度一面
-
自我介绍
-
正向代理和反向代理的区别(可能因为我的简历上写了nginx,才问的这个问题)
-
普通函数和箭头函数的区别
-
let、var、const的区别
-
跨域问题、解决方案
-
动态创建script标签的方法解决跨域问题,怎么拿到json数据?
- 使用access-control-allow-origin解决跨域问题的流程是怎样的
- (由以上几个问题可以看出,面试官可能会追着一个点一直问下去,如果了解的不深入,很容易就被问住了。好吧,我最后确实没有回答上来)
-
vue-router是怎么用,location.href和vue-router的区别
- url的history模式和hash模式
-
题
给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。
例如:
输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4
输出: true
说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等于总和。
感悟:一面面试官问的问题,和我的自我介绍以及简历上写的内容有很大关系。面试官看到简历上写了某一个技术点,或者听到我回答了某一个技术点,就深挖着问了一下。所以对于自己不熟悉的地方,还是尽量不要说,以免给自己挖坑。有时间去深入学一下是最好的
百度二面
-
自我介绍
-
介绍一下http协议
-
vue-cli做过哪些配置
-
webpack用过哪些配置
-
vue的$nextTick方法
- vue的声明周期
- 题目1:正则表达式 匹配 6 - 20的字符串,字符串只能包含数字和大小写字母 '123321ddd'
- 题目2:我们有这样的句子,hello world,要求输出另外的句子,所有的单词首字母大写 Hello World
- 题目3:看代码说结果,原因
console.log('start') setTimeout(function() { console.log('setTimeout') }, 0) Promise.resolve().then(function() { console.log('promise1') }).then(function() { console.log('promise2') }) console.log('end')
- 题目4:写一个节流,写一个防抖
- 题目5:写一个ES5的继承
- 题目6:实现一个函数:sum(1)(2,3)(4,5,6).valueOf() = 21
前边回答的还不错,最后一道题只写出了一部分。但是面试官很好,一步步指导着让我写完了~
百度三面
-
自我介绍
-
JS层面的性能优化方案
-
页面很慢,怎么做优化
-
做项目的过程中遇到哪些比较难的地方?
-
为什么要走前端的路线?
-
为什么要学习vue?
-
vue框架有哪些有点和缺点?
-
前后端分离有什么优缺点?
-
最近在看哪些书
-
说一下你的优势和缺点
-
平时有什么兴趣爱好
-
有没有在面试其他公司
前边一直在问性能优化的知识,可能是因为我在自我介绍的时候提到了性能优化,看了这方面的书。等结果~
美团
美团一面,2021.4.1
-
自我介绍
- 面向对象三要素
- 浏览器的最大请求并发数
-
实现css两栏布局,左边固定宽度,右边自适应有哪些方法
-
长度单位:px、rpx、em、rem、dpr,都是什么意思
-
操作系统进程和线程区别
-
操作系统的死锁
-
正则表达式编程题
-
闭包,闭包编程题
-
vue的mixin,混入的概念
-
二分查找、快速排序的时间复杂度
美团二面,2021.4.7
-
自我介绍
-
为什么要学习前端
-
手写JS的防抖代码
-
防抖和节流的区别
-
line-height = 2,没有单位,行高是多少?
-
介绍一下你的两个项目
-
项目中有没有遇到什么问题,是怎么解决的
-
小程序中可能出现的性能问题
- nginx的配置文件,它是怎么实现反向代理的
- 编程题
const Util = { setData(key, value, expires){} getData(key){} } 实现一个对象,用localStorage来存储数据,且可以传入expires作为过期时间,如果已过期,get的时候清空该数据
面试官结束后,给了两个建议:
工作之后写代码要更多的考虑边界条件,不能向平时敲代码那样随意
有一个长期维护的项目比较好
网易
2021.3.23 投递网易
网易一面,2021.4.13
-
promise、async、await
-
实现两栏布局
-
ES5实现继承
-
CSS怎么画一个三角形
-
父元素宽度和高度不确定,怎么在内部画一个跟随父元素宽高变化的正方形
-
单页面应用中路由切换为什么不会向后端发送请求
-
vuex是怎么实现的
-
vue内部是怎么实现数组的响应式的
-
数组去重有哪些方法
-
apply、call、bind方法的区别
-
自定义实现bind方法
-
new 构造函数的过程中发生了什么
- 如果构造函数中返回了基本类型的值,new的时候会返回什么
网易二面,20214.19
-
自我介绍
-
什么时候接触前端
-
HTML5中新增的API有哪些
-
http常见的状态码
-
https有了解吗?
-
CSS实现9宫格,三行三列,每个格子是正方形(主要考察点)
-
webpack的loader和plugin的区别
-
webpack中插件的开发
-
history模式的优点、和hash模式的优缺点对比
-
vue中往购物车中添加商品列表怎么实现?
-
不同购物页面,如何汇总到一起,保证不混乱
-
开发一个购物车的组件需要暴露哪些props和事件events
-
如果操作props(本来不应该操作,但是现在不小心操作了),怎么避免修改了数据后不影响原来的
-
反问
网易HR面
-
选择一个令你印象深刻的项目,为什么要做这个项目,功能点、收获等
-
为什么要走前端开发
-
未来规划
-
手里有几个offer,怎么做选择
- 反问
结果
心得体会
-
面试官问了一个a问题,你使用了a知识点进行回答,如果b知识点和a知识点有联系,而且你又比较熟悉,那么就完全可以在回答完a问题之后,再说一下b知识点。一方面显示你知道这些知识之间的联系,另一方面,面试官听到你说了b知识点,就很可能去问b知识点的问题,而b知识点你又很熟悉,这就完美的引导了面试官往自己熟悉的知识区域去问。
- 真的遇到自己不懂的问题,之前没有接触过的问题,不要直接说不会就等着问下一个问题。就算自己没有接触过,也要说一下自己的理解和思考过程(“虽然这个问题我之前没有接触过,但是我感觉它应该是这样的……”)。还是要尽量体现出遇到问题自己是会思考怎么把它解决的,而不是直接放弃,如果扯的结果和最终答案有一丢丢的联系,那就还不错。
- 到后期,发现问到的好多问题在之前的面试过程中都回答过,所以可以针对常考的知识点做一个专门的学习。比如计算机网络这一块,常问的:HTTP状态码、HTTP的发展历程(可能会让说HTTP1.1相比1.0版本有哪些提升之类的)、TCP和UDP的区别、TCP的三次握手和四次挥手、TCP的可靠传输、TCP的滑动窗口、流量控制等。如果不懂,完全可以背一背,当然理解了更好。我是直接拿起 谢希仁老师的计算机网络书来看的~~~好吧,我们专业开设的有计算机网络这门课,但是当时没有好好学......哎,欠的账总是要还的。
- 面试后及时整理本次面试的问题,针对没有回答好的知识点做针对性的学习。
- 面试的次数也不少了,到了后期,可以明显感觉到自己的面试技巧有很大提升,也没有那么紧张了,面试过程中越来越像“聊天”。
- 建议写一些博客,GitHub上有东西。阿里提前批一面的时候,面试回答的一般,没有很好,但是面试官说我博客,还有GitHub上有自己的作品,还可以,就让我过了。当然了,写博客不完全是为了简历上能放个博客链接,好看。更重要的是写博客是一个技术输出的过程,可以对学过的知识做一个总结,并且在总结语言和文章的逻辑的时候,也能对学过的知识有一个更深的理解。我有时候也把博客当做笔记本来用,哪块知识遗忘了就上去翻翻。我的博客链接https://blog.csdn.net/weixin_43974265,GitHub https://github.com/ChangYanwei