首页 > 我的2021前端实习春招,京东、阿里、美团、百度、网易面经
头像
webchang
编辑于 2022-04-20 16:30
+ 关注

我的2021前端实习春招,京东、阿里、美团、百度、网易面经

我是22届毕业生,软件工程专业,求职岗位:前端开发工程师(实习)。

由于我们专业学的是Java,并没有开设与前端有关的课程,所以我是自学的前端,从2020年9月份开始一心学前端(之前也有自学,但都是小打小闹,学的不深),主要通过看教学视频,看书,官方文档等进行学习。现在总结一下自己的春招历程,并分享一下自己的面经(面试过后我都会立马记下来,但是也可能会有遗漏),包括京东、阿里、美团、百度、网易,这些公司的前端实习岗位面试经历。

因为我是自学的,中间也经历了迷茫期,在20年的9月份到12月份,那段时间学习完全找不到重点,无人指导,乱学。接着到了21年的一二月份学校放寒假,当时我意识到一个很严重的问题:自己的技术水平太菜了!!!如果不做点什么,我可能找不到好工作......想想很可怕,焦虑促使我前进,于是整个寒假将近两个月,我没有娱乐,每天的学习时间基本上在8小时左右。并疯狂写博客,整个1月份,我写了59篇博客。进入2月份,针对面试中常考的技术点进行专门的学习,并准备面试。然后到了2月底,3月初,我的春招正式开始了!!!

准备面试的过程中有这样一个体会:自问自答的模式挺有效的(至少对于我个人来讲很有用),问自己一个问题,不看书不看电脑,就对着空气回答一遍,感觉答的不好的地方再去翻看总结。于是我自问自答了两三天......

在3月,自己非常焦虑(焦虑是我个人动力的大部分来源,挺离谱的吧~),于是那段时间我开启了疯狂看书模式,3月份,总共看完了7本与前端相关的技术书籍,针对容易遗忘的部分专门准备几个文档分门别类进行记录(使用的是typora软件),面试前翻看。

“金三银四”,我的面试集中在3月下旬到4月中旬,进行了多次面试后,自己的表现也越来越从容,没有之前那么紧张了,特别是网易面试的时候,总体感觉就像在聊天(也可能是因为已经通过了其他公司的面试导致的心态平和,过了更好,不过也行~~~)。另外,不得不承认,在面试逐渐结束,陆续收到结果后,自己看书的速度明显变慢了,但还是在4月份看完了4本书。

目前我已经渡过这个阶段了,于是就想写点东西记录一下。文章较长,主要分为以下几个部分:春招历程回顾、面经汇总、结果、心得体会。欢迎大家与我交流。

春招历程回顾

2021.2.26 京东前端开发实习生
2021.2.28 京东前端开发实习生
过~
------------------------------------------------------
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.5.6更新:网易面试已通过
2021.5.8更新:百度面试已通过


面经汇总

京东

京东一面,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.4.16 美团HR打电话说面试通过

网易

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,怎么做选择

  • 反问

结果

京东:面试通过
阿里:面试通过,本地生活部门
美团:面试通过,到店事业群
2021.5.6更新:网易面试已通过
2021.5.8更新:百度面试已通过

心得体会

  • 面试官问了一个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
*******************
个人vx:webcyw

更多模拟面试

全部评论

(9) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐