2018年 前端秋季校招面经

1,799 阅读11分钟

双非本科。 提前批投了有30多家,总共加起来投了有50多家公司, 除了蘑菇街给了提前批直接面试,其他要不是转笔试,要不是直接挂简历(阿里腾讯),要不就是正式批都开始笔试面试了,我老早投的没一点动静,也不给我转正式批,正式批投了也不给我笔试(欢聚、虎牙等)。

8月26日左右开始投,小米8月28日投的内推,9月最后一周了才联系我说我是提前批面试。 除了蘑菇街和小米,其他基本上都是笔试通过后开始面试,不过也有笔试通过后不给我面试(JD、知乎)。

最早面的美丽联合,提前批,之后就是9月第三周现场面的百度、网易、和电话面的小米,9月最后一周的oppo、美团、腾讯。 站点都是成都。


目前状态:

  • 签百度
  • 百度offer、百词斩ssp(估计有实习buff加成,谈薪资的时候薪资高到把我吓蒙)、美团offer、小米小sp、美丽联合sp,
  • 网易意向书收到了,结果人招满了
  • 神策数据 一面挂

[TOC]

面经

美丽联合

最早面试的一家公司,感谢蘑菇街提前批接受了我的简历,不然我估计会因为0面试而崩溃的。不过我蘑菇街的面经没有可参考性,1,2面全是问的项目,3面也是比较常规的hr面。

1面 电话

问项目,中途还涉及到vue、canvas、webpack。 但是大部分时间都是问项目。

2面 视频

问项目。

3面 Hr

标准hr面

4面 加面

面试官是非常厉害的人,好像是电商部门的技术总负责人。

让我进行5-10分钟的自我介绍,把学习经历,项目和负责内容都介绍一次。

然后问了我项目中的几个问题

还问了我怎么处理兼容性

之后就是问对前端看法,个人的打算等等

总之感觉挺轻松的。



神策数据

1面 视频

忘了问的啥了,总之体验很不好,自我介绍的时候就被打断很多次,最后让我手写一个题。

最后,面试官的评价是,代码写得太少了。 我:???



百度

1面 (1小时45分钟)

  1. 介绍一下项目,把我简历上的项目问了一大半,哪些难点,怎么做的,为什么这么做,有其他方法能实现吗(后面这几点大部分是我自己主动介绍的)
  2. 讲项目期间还问了我Canvas,wepack,vue的问题。
  3. 讲项目就占了一半的时间,
  4. 手写ajax
  5. vue双向绑定
  6. vue-router原理
  7. es6有哪些
  8. let/const/var区别
  9. 箭头函数
  10. this
  11. 出了一个相关this的题
  12. 模块化
  13. 性能优化(这里我扩展了很多,然后被面试官阻止了,说够多了)
  14. 1亿个乱序数里面找出最大的前1000个数
  15. 有什么想问我的

2面 (1小时24分钟)

  1. 面试官把我简历很仔细的看了一遍,然后问我怎么学习的
  2. 看了哪些书 然后和和气气的画风突变
  3. 手写es6 class继承
  4. 一道class相关的题
  5. 手写es5 继承
  6. 手写伪数组转换为数组(没写好,还出了错) 面试官说[].slice.call 然后我说有问题,然后还暴露出我没分清Array和[]的区别
  7. 手写string的indexOf,不能用正则,不能用substr这些相关的方法
  8. 讲讲事件代理
  9. 手写一个block函数,功能是阻止所有a标签的跳转事件,并输出href的值。只要使用这个函数(在文档任意地方写了block()),所有的a标签的跳转事件都要能阻止。这里还有一个坑,就是<a><li></li></a>如果我点的是li,e.target获取的值就是li
  10. 从url输入内容到浏览器显示 前面手写代码写得想哭,细节漏洞百出被批了几次。居然问到了我最擅长的题,我差点没憋住笑出来

10.1. 讲了输入值浏览器的不同处理

10.2. dns

10.3. arp

10.4 tcp三次握手

10.5. 中途问我为什么要3次,不能2次

我想说tcp4次挥手的时候被阻止了,面试官说他知道我知道 10.6. 浏览器拿到数据后怎么渲染

10.6.1. dom构建全流程,cssom构建全流程,渲染树构建, (上面那些是我回答的内容)

  1. script 会阻止页面渲染吗,外部引入js,css放置位置的影响
  2. async和defer
  3. 用了async的js代码,想获取dom结点怎么办
  4. domcontentloaded和onload区别
  5. domcontentloaded 兼容写法
  6. 你有什么想问我的 x4(我:???)

3面 (1个小时20分钟)

聊人生聊未来聊项目聊思想,聊了一个1个小时20分钟,聊得我想吐,要在聊人生中展现出自己的能力,也是绞尽脑汁。



网易

1面 (1小时)

  1. 自我介绍
  2. 页面白屏原因
  3. 怎么查错,如果有很多人一起开发呢
  4. 兼容性,向下兼容和不同浏览器兼容
  5. 布局
  6. es6
  7. 箭头函数 作用域 还出了几道题
  8. babel原理
  9. vue通信
  10. vuex
  11. eggjs(项目中用到的)和koa区别
  12. http状态码 301,302区别
  13. url输入到页面显示
  14. 外链css,js和img流程
  15. 怎么学习的
  16. 未来的规划
  17. 评价一下自己
  18. 还有什么想问的

2面 (1个小时)

全是问项目,正好到我强项 面试官也没怼我,我的思考挺全面的,基本上面试官的问题我之前做的时候都有考虑过,要不就是现在就能给出解决方案


3面 hr (45分钟)

压力hr面,面的时候感觉在被怼,没谈薪资



小米

1面 (40分钟) 电话

  1. 自我介绍
  2. 介绍http状态码
  3. 304变回200
  4. http和https区别
  5. tcp三次握手
  6. webpack
  7. html5新加的内容
  8. html5的优点和缺点
  9. position的值
  10. transform和position:absolute/relative; left:200px 两者移动元素的差别
  11. let/const/var 区别
  12. es6 class 其他想不起了 问得挺多的,但都是基础

2面 电话

忘了,总之是技术面,很基础

问了算法,一共4个算法,其中1个是检测链表是否有环,1个是链表的环点

3面 hr

好像是hr? 更新这篇文章的时候已经过去很久,忘了



oppo

1面 (30分钟)

  1. 自我介绍
  2. 项目中负责的内容
  3. es6新增内容
  4. polyfill
  5. 性能优化
  6. 移动端自适应
  7. 水平居中
  8. 一行文字超了以省略号表示(我还补充了多行的)
  9. canvas(项目中用上了)
  10. webpack

其他想不起了,总之很简单


2面

  1. 自我介绍

  2. 看你是软件工程的学生,你们学的是什么 答:C++和 JAVA。

    2.1. 那你知道c++的@##@¥怎么%&*¥#吗? 答:不知道

    2.2. 那你说说@#$%^ 答:不知道

    2.3. JAVA中@#¥%&*¥#¥% 答:不知道

  3. 你们学过计网吗,学过。 说一下Tcp3次握手。 Balabala,那你知道在这时候客户端发送#$%^#&*会怎么样吗? 答:不知道

  4. 你们应该有学过软件工程的一些模式吧,比如说瀑布模式,你还知道其他的吗。 思考了一会儿,答:忘了。

  5. 那你用JS写代码的时候用过一些设计模式吗。说说看。

  6. 说一下单例模式。

  7. 有哪些方法可以实现单例模式。

  8. 然后开始聊人生了。

二面莫名其妙的居然就过了?感觉30-40%都是回答的不知道或者忘记了


3面 hr

标准hr面



美团

1面 (接近1小时)

  1. 自我介绍
  2. 5道有关this的题
  3. 手写一个find方法,查找对象是否有指定的属性
  4. 计算机网络学过吗
  5. 说一下3次握手
  6. 十万个乱序、有重复的数,找出第K大的数。这里讨论各种算法的时间复杂度讨论得很深。

剩下的想不起了,总之有难度。


2面 (面试时间:???)

  1. 自我介绍
  2. 问了一下项目
  3. 项目中canvas做了啥
  4. get post请求区别。
  5. get请求的数据放在哪,post呢
  6. get为什么不安全
  7. XSS是什么(自己挖了坑)
  8. get除了能在url里,还能在哪
  9. 为什么要跨域
  10. 同源策略到底保护的是什么
  11. 跨域的方法
  12. 实现一个JSONP
  13. CORS原理
  14. CORS怎么请求。
  15. 为什么get是简单请求,post是复杂请求。
  16. get和post的幂等、PUT是幂等吗
  17. 说一下你了解的数据结构。
  18. 说一下这些数据结构的适用场景
  19. 什么场景使用二叉树,为什么要创造出二叉树这种数据结构。
  20. 语义化一个表单(应该这个意思吧,没太懂)
  21. table表单存储的到底是什么数据
  22. table和ul ol本质上区别是什么
  23. 会做游戏吗    不会
  24. 让你实现一个连连看怎么做
  25. 你这个算法最核心的地方具体怎么做
  26. 为什么这么多大学生选择程序员这种工资不是最Top,但是又很累的职业
  27. 为什么程序员普遍工作时间长
  28. 为什么井盖是圆的
  29. 精确估计成都的小汽车数量和出租车数量
  30. 好了,你快走吧。

我:????

最懵逼的一场面试, 一面过去才没多久,还没从一面的难度中缓过来,面经也没写好,二面就来了。原本以为自己已经够深入了,没想到居然还能再深入, 整个二面基本上都是自己认识被不断击毁,全程懵逼,基本上40%-50%我都在说不知道。


3面

2面才结束不到5分钟,就来通知了,我还以为通知我凉了,没想到直接让我面3面,1、2面面试官就在后面看着我,我:我为什么过了?我是谁?我在哪?我在干什么?

一脸懵逼的坐下去

  1. 自我介绍
  2. JS弱类型
  3. [] + [] 等于什么
  4. [] + ![] 等于什么
  5. [] == ![] 结果?
  6. [] == [] 结果?
  7. 问项目
  8. 聊人生、未来规划
  9. 你有什么想问我的 xn

一脸懵逼的离开

4面 hr 35分钟

标准hr面



腾讯

1面 (大约1小时)

个人感觉1面难度高于网易,低于美团

  1. 自我介绍
  2. 你用vue多还是react多
  3. 说一下vue的diff
  4. 手写一个vue组件,组件传参
  5. 写一个vue的指令,比如自己写出v-on
  6. css3动画
  7. tcp三次握手
  8. 数据是在什么时候发送的
  9. 第三次握手没收到,服务器端收到了客户端数据会怎样
  10. ajax请求有哪几种状态,具体说一下
  11. 介绍一下csrf
  12. 怎么防御csrf
  13. 301和302区别
  14. 说2个用到301的实际例子(这里我没用到过301,我说我用过307,然后说了307的情况)
  15. 页面渲染有哪几种模式
  16. ie模型和w3c模型的区别
  17. 微信小程序原理
  18. 怎么学习新技术,举个例子(讲了我学vue的过程)
  19. 60%的同学喜欢篮球,70%喜欢足球,80%喜欢排球,多少同学既喜欢篮球又喜欢足球

腾讯一轮游



百词斩

1面 (54分钟) (视频)

  1. 自我介绍
  2. 写个冒泡排序
  3. 算法的时间复杂度
  4. JS与其他面向对象语音的区别与优缺点
  5. 原型,原型链,继承
  6. 原型继承的优缺点
  7. 可实现3列布局的方法,我说了4种
  8. 说一下异步
  9. setTimeout
  10. 有关setTimeout的2道题
  11. 写个AJAX
  12. 封装一个AJAX
  13. TCP三次握手
  14. TCP在哪一层
  15. fetch有用过吗,没。。
  16. 数据库的操作
  17. 队列和栈
  18. 实现一个链表
  19. 进程和线程
  20. 操作系统内存调度的解决方法,说了3个
  21. 还有什么想问的

整体来说1面难度中规中矩,相比其他公司问的更广一点,但是深度没有其他公司深。


2面 (1小时10分钟) 视频

  1. 自我介绍
  2. 大学里面学过哪些课
  3. 搜索树、B树知道吗
  4. hash表的特点
  5. TCP和UDP区别
  6. 怎么选择TCP和UDP
  7. tcp/ip协议族分哪些层,都有些什么协议
  8. 双向绑定
  9. 文件路径问题(没能理解到问的什么)
  10. 手写大数相加
  11. 自己说一下自己研究过的地方,说了性能优化

3面 hr

谈薪资。