写在前面

本科大三暑假,刚刚结束了四个多月在美团外卖的前端实习,整理一些参加2018春招的面试经历,仅供参考。

腾讯(MIG,深圳)

一面(现场面)

两分钟自我介绍
项目团队有多少人
为什么选择前端
js闭包原理 优点
跨域方法
输入一个url到显示页面的过程
cookie和session的区别
笔试:

  1. cookie的大小 数量限制
  2. typeof(null)
  3. 判断函数输出 this setTimeOut
  4. 用js实现 鼠标滑过文本框时自动选中文本框内容
  5. 用js实现 如何避免鼠标多次点击导致表单重复提交

vue的特点
项目使用sqlite数据库 和mysql有什么区别
项目难点
react项目实现的功能模块
react项目怎样和后端交互
今后的学习有什么计划
前端更新很快 你怎么看
实习时长、是否考研、实习城市

二面(电面)

自我介绍
介绍项目 问得很细
团队人数 团队分工 难点 如何优化
前端优化的方式
css浏览器兼容性 为什么会不兼容
闭包的作用 项目中用过闭包吗
学过什么课程
学过什么算法
快排和归并排序的时间复杂度和空间复杂度
有什么问题想问我

三面(HR面,现场面)

自我介绍
最难忘的项目经历
项目中遇到的问题 具体描述
如果你是项目pm 会怎么做
说说优点和缺点
技术方面的优点呢
你觉得你一面和二面答的怎么样
你认为作为一个前端需要什么特质
你有哪些地方符合这些特质呢
女生做前端和男生做前端有什么差别
有没有面试过别的公司?面试过程对比
你们的八字校训怎么理解 你做到了哪些
哪里人 喜欢的城市
对工作地点的要求 父母同意去深圳吗
有什么问题要问我

总结

可能是因为BG的关系,我参加的腾讯的面试比较基础和简单,没有很超纲的问题,都可以通过日常积累和往年面经学到。现场面的时候突然拿出卷子要笔试还挺紧张的,HR姐姐很温柔。

阿里巴巴(杭州)

一面(电面)

看项目中使用了dva,为什么要用dva?直接用saga也能达到同样的效果,dva相比好在哪里?
说说react的单向数据流
react中state与界面通信的函数(connect)
react组件的生命周期
react的性能 如果只更新最底层的数据 怎么重新渲染界面?
如果有一个比较复杂的逻辑 需要更改state 应该放在reducer中还是effect中?
在哪里调用ajax,同步异步的区别 ajax是否有副作用
vue和react相比 优点和缺点
vue中与reducer effect相对应的部分是什么
vue的计算属性 watch react中有相对应的部分吗?如果要添加 应该加在哪个回调函数里?
github上开源项目的介绍
平时在学习什么新的技术 从哪里学习
有什么问题要问我

一面(电面,复活面)

自我介绍、项目介绍
在项目中 人员分工 项目具体介绍
React 和 vue 的区别 使用感受
对 Es6 的了解
解构赋值 怎么赋予默认值
js 事件机制
设计模式 有没有了解到观察者模式
web 性能优化
箭头函数 this 指向
同步异步的区别
Ajax 为什么是异步的
如何解决回调地狱
promise 是如何工作的
浏览器从输入网址到显示页面的过程
这个过程中 http 连接是一次性的还是长期性的?
有没有个人项目?你觉得个人项目和团队项目最大的区别在哪里?
在团队合作过程中 最困难的点和最有趣的点是什么?
有什么问题要问我

总结

阿里面试一轮游,面试官是对着简历问的,一面完全和前端框架、项目经历有关,基本不涉及到js,css等等基础,因为项目里用到了阿里自研的框架,所以问的比较深,面完就被挂了😅 。很久之后又有一轮复活面,问的比较基础,但是面完一直没有消息,估计只是走个流程。

酷家乐(杭州)

一面(电面)

自我介绍
项目难点
generator函数 yield关键字
基础知识:
js原型链
js继承 如何实现new
proto和prototype
call apply bind 区别
es6特性 箭头函数的this指向
css position属性
css盒模型
react生命周期 挂载 更新 删除
对虚拟dom的diff算法有了解吗

二面(电面,算法面)

自我介绍
什么是稳定的和不稳定的排序
有序数组a的大小是m+n 有序数组b的大小是n 如何不用另外的空间 把这两个数组组合成一个有序数组 算法复杂度是多少
两个链表有一个公共交叉节点 如何找到这个节点
一个硬币 正反面概率相同 抛n次 如何模拟三分之一的概率

三面(电面,组长面)

redux有什么不好的地方 你觉得需要改进的
react和vue 都有一个数据映射到view层的过程 在方法中取props的时候 有没有可能取到的props和reducer中的state不一样?
react中setState是异步的 需要把更新的内容加到队列中 通过timer计时一段时间后进行合并更新 如果在这段时间内数据发生了变化 要如何把它立即反映到界面上?
对react和vue的源码了解吗?了解多少
object.defineProperty方法中 getter和setter只能接受静态数据 如果是动态数据要如何解决?es6中有对应的特性可以解决吗?
对es6有多少了解?
有申请别的实习 拿到offer吗
你认为什么样的公司比较适合前端的发展
实习时间 实习地点
对酷家乐有多少了解?
有什么问题想问我?

总结

酷家乐节奏很快,一天面完三轮,第一面是前端知识,问的比较细,第二面是算法,第三面是组长,个人认为有点偏压力面,问的偏底层源码。

美团(上海)

一面(电面)

进程和线程的区别
数据库索引
怎么构建数据库索引
为什么存在树里
HTTP请求方法
PUT和POST的区别 什么时候用PUT
GET和POST的区别
如果一个网站服务器端一直在改数据 那应该用GET还是POST 为什么
跨域 CORS 服务器端要怎么写 如果服务器端不能改呢?
HTTP是无状态的协议 那在断开连接后 下一次连接要怎么知道他之前的信息
cookie是怎么存的 怎么拿里面的东西
一个网站可以拿别的网站的cookie吗?
那为什么你访问技术博客的时候会有百度小广告?你觉得他是怎么实现的?
说说客户端访问服务器端的交流的过程
TCP三次和四次握手
url里面的#是什么意思
url里面的%是什么意思?根据什么转义?
把一个网站从http改到https 需要加什么东西?
加密是什么加密?怎么加密?
非对称加密了解过吗?
什么是证书?为什么证书可以保证网站的真实性?
加密 和 哈希 有什么区别?什么情况下会用到哈希?
哈希有可能产生冲突吗?如果冲突了怎么办?
那如果一定要不冲突的结果,可以不用哈希,那应该用什么?

二面(视频面)

前端潮流的发展 怎么理解模块化
你在项目中用过什么模块化
原生jquery中 (function($))(window.$) (function($){})(window.$) 的理解
webpack中用过哪些loader plugin
对reactElement的理解
react的具体渲染过程
生命周期中shoudComponentUpdate 用过吗 怎么用
又没有接触过mutable.js purecomponent
react 父组件 子组件怎么通信 除了props和共享状态?
监听者模式怎么运用?emit on 的理解?
接触过哪些设计模式?
观察者模式怎么运用?项目中哪里用过?
浏览器的事件机制 chrome和ie有什么区别?
react和vue的区别 最核心的区别是什么
react的编程思想
函数式编程的好处
代码题,判断以下三段代码的输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var ary = [1, 2, 3];
for (var index = 0; index < ary.length; index++) {
setTimeout(function () {
console.log(index);
}, index * 1000);
}

var ary = [1, 2, 3];
for (let index = 0; index < ary.length; index++) {
setTimeout(function () {
console.log(index);
}, index * 1000);
}

var ary = [1, 2, 3];
for (var index = 0; index < ary.length; index++) {
setTimeout(function (index) {
console.log(index);
}, index * 1000);
}

repaint relow 区别
居中的三种方式:调整top、left 调整margin 使用translate 哪种性能最好 为什么

三面(电面,组长面)

自我介绍
为什么选择前端
怎么学习前端 为什么用react、vue这些框架?
实习时间
公司介绍
平时爱好

总结

美团的面试是我参加的整个春招里最难的,第一面应该是后端的面试官,问了很多网络、后端的问题,平时没有接触过,所以回答的很不流畅,但是面试官很有耐心地进行引导和提示,所以整体体验不错。二面是视频面试,问了一些webpack、前端模块化的问题,也涉及到了css,js,前端框架,设计模式,覆盖面很广,面了很久。三面就是谈话形式的了,没有技术问题,比较轻松愉快。