双非本科。 提前批投了有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分钟)
- 介绍一下项目,把我简历上的项目问了一大半,哪些难点,怎么做的,为什么这么做,有其他方法能实现吗(后面这几点大部分是我自己主动介绍的)
- 讲项目期间还问了我Canvas,wepack,vue的问题。
- 讲项目就占了一半的时间,
- 手写ajax
- vue双向绑定
- vue-router原理
- es6有哪些
- let/const/var区别
- 箭头函数
- this
- 出了一个相关this的题
- 模块化
- 性能优化(这里我扩展了很多,然后被面试官阻止了,说够多了)
- 1亿个乱序数里面找出最大的前1000个数
- 有什么想问我的
2面 (1小时24分钟)
- 面试官把我简历很仔细的看了一遍,然后问我怎么学习的
- 看了哪些书 然后和和气气的画风突变
- 手写es6 class继承
- 一道class相关的题
- 手写es5 继承
- 手写伪数组转换为数组(没写好,还出了错) 面试官说[].slice.call 然后我说有问题,然后还暴露出我没分清Array和[]的区别
- 手写string的indexOf,不能用正则,不能用substr这些相关的方法
- 讲讲事件代理
- 手写一个block函数,功能是阻止所有a标签的跳转事件,并输出href的值。只要使用这个函数(在文档任意地方写了block()),所有的a标签的跳转事件都要能阻止。这里还有一个坑,就是
<a><li></li></a>
如果我点的是li,e.target
获取的值就是li - 从url输入内容到浏览器显示 前面手写代码写得想哭,细节漏洞百出被批了几次。居然问到了我最擅长的题,我差点没憋住笑出来
10.1. 讲了输入值浏览器的不同处理
10.2. dns
10.3. arp
10.4 tcp三次握手
10.5. 中途问我为什么要3次,不能2次
我想说tcp4次挥手的时候被阻止了,面试官说他知道我知道 10.6. 浏览器拿到数据后怎么渲染
10.6.1. dom构建全流程,cssom构建全流程,渲染树构建, (上面那些是我回答的内容)
- script 会阻止页面渲染吗,外部引入js,css放置位置的影响
- async和defer
- 用了async的js代码,想获取dom结点怎么办
- domcontentloaded和onload区别
- domcontentloaded 兼容写法
- 你有什么想问我的 x4(我:???)
3面 (1个小时20分钟)
聊人生聊未来聊项目聊思想,聊了一个1个小时20分钟,聊得我想吐,要在聊人生中展现出自己的能力,也是绞尽脑汁。
网易
1面 (1小时)
- 自我介绍
- 页面白屏原因
- 怎么查错,如果有很多人一起开发呢
- 兼容性,向下兼容和不同浏览器兼容
- 布局
- es6
- 箭头函数 作用域 还出了几道题
- babel原理
- vue通信
- vuex
- eggjs(项目中用到的)和koa区别
- http状态码 301,302区别
- url输入到页面显示
- 外链css,js和img流程
- 怎么学习的
- 未来的规划
- 评价一下自己
- 还有什么想问的
2面 (1个小时)
全是问项目,正好到我强项 面试官也没怼我,我的思考挺全面的,基本上面试官的问题我之前做的时候都有考虑过,要不就是现在就能给出解决方案
3面 hr (45分钟)
压力hr面,面的时候感觉在被怼,没谈薪资
小米
1面 (40分钟) 电话
- 自我介绍
- 介绍http状态码
- 304变回200
- http和https区别
- tcp三次握手
- webpack
- html5新加的内容
- html5的优点和缺点
- position的值
- transform和position:absolute/relative; left:200px 两者移动元素的差别
- let/const/var 区别
- es6 class 其他想不起了 问得挺多的,但都是基础
2面 电话
忘了,总之是技术面,很基础
问了算法,一共4个算法,其中1个是检测链表是否有环,1个是链表的环点
3面 hr
好像是hr? 更新这篇文章的时候已经过去很久,忘了
oppo
1面 (30分钟)
- 自我介绍
- 项目中负责的内容
- es6新增内容
- polyfill
- 性能优化
- 移动端自适应
- 水平居中
- 一行文字超了以省略号表示(我还补充了多行的)
- canvas(项目中用上了)
- webpack
其他想不起了,总之很简单
2面
-
自我介绍
-
看你是软件工程的学生,你们学的是什么 答:C++和 JAVA。
2.1. 那你知道c++的@##@¥怎么%&*¥#吗? 答:不知道
2.2. 那你说说@#$%^ 答:不知道
2.3. JAVA中@#¥%&*¥#¥% 答:不知道
-
你们学过计网吗,学过。 说一下Tcp3次握手。 Balabala,那你知道在这时候客户端发送#$%^#&*会怎么样吗? 答:不知道
-
你们应该有学过软件工程的一些模式吧,比如说瀑布模式,你还知道其他的吗。 思考了一会儿,答:忘了。
-
那你用JS写代码的时候用过一些设计模式吗。说说看。
-
说一下单例模式。
-
有哪些方法可以实现单例模式。
-
然后开始聊人生了。
二面莫名其妙的居然就过了?感觉30-40%都是回答的不知道或者忘记了
3面 hr
标准hr面
美团
1面 (接近1小时)
- 自我介绍
- 5道有关this的题
- 手写一个find方法,查找对象是否有指定的属性
- 计算机网络学过吗
- 说一下3次握手
- 十万个乱序、有重复的数,找出第K大的数。这里讨论各种算法的时间复杂度讨论得很深。
剩下的想不起了,总之有难度。
2面 (面试时间:???)
- 自我介绍
- 问了一下项目
- 项目中canvas做了啥
- get post请求区别。
- get请求的数据放在哪,post呢
- get为什么不安全
- XSS是什么(自己挖了坑)
- get除了能在url里,还能在哪
- 为什么要跨域
- 同源策略到底保护的是什么
- 跨域的方法
- 实现一个JSONP
- CORS原理
- CORS怎么请求。
- 为什么get是简单请求,post是复杂请求。
- get和post的幂等、PUT是幂等吗
- 说一下你了解的数据结构。
- 说一下这些数据结构的适用场景
- 什么场景使用二叉树,为什么要创造出二叉树这种数据结构。
- 语义化一个表单(应该这个意思吧,没太懂)
- table表单存储的到底是什么数据
- table和ul ol本质上区别是什么
- 会做游戏吗 不会
- 让你实现一个连连看怎么做
- 你这个算法最核心的地方具体怎么做
- 为什么这么多大学生选择程序员这种工资不是最Top,但是又很累的职业
- 为什么程序员普遍工作时间长
- 为什么井盖是圆的
- 精确估计成都的小汽车数量和出租车数量
- 好了,你快走吧。
我:????
最懵逼的一场面试, 一面过去才没多久,还没从一面的难度中缓过来,面经也没写好,二面就来了。原本以为自己已经够深入了,没想到居然还能再深入, 整个二面基本上都是自己认识被不断击毁,全程懵逼,基本上40%-50%我都在说不知道。
3面
2面才结束不到5分钟,就来通知了,我还以为通知我凉了,没想到直接让我面3面,1、2面面试官就在后面看着我,我:我为什么过了?我是谁?我在哪?我在干什么?
一脸懵逼的坐下去
- 自我介绍
- JS弱类型
- [] + [] 等于什么
- [] + ![] 等于什么
- [] == ![] 结果?
- [] == [] 结果?
- 问项目
- 聊人生、未来规划
- 你有什么想问我的 xn
一脸懵逼的离开
4面 hr 35分钟
标准hr面
腾讯
1面 (大约1小时)
个人感觉1面难度高于网易,低于美团
- 自我介绍
- 你用vue多还是react多
- 说一下vue的diff
- 手写一个vue组件,组件传参
- 写一个vue的指令,比如自己写出v-on
- css3动画
- tcp三次握手
- 数据是在什么时候发送的
- 第三次握手没收到,服务器端收到了客户端数据会怎样
- ajax请求有哪几种状态,具体说一下
- 介绍一下csrf
- 怎么防御csrf
- 301和302区别
- 说2个用到301的实际例子(这里我没用到过301,我说我用过307,然后说了307的情况)
- 页面渲染有哪几种模式
- ie模型和w3c模型的区别
- 微信小程序原理
- 怎么学习新技术,举个例子(讲了我学vue的过程)
- 60%的同学喜欢篮球,70%喜欢足球,80%喜欢排球,多少同学既喜欢篮球又喜欢足球
腾讯一轮游
百词斩
1面 (54分钟) (视频)
- 自我介绍
- 写个冒泡排序
- 算法的时间复杂度
- JS与其他面向对象语音的区别与优缺点
- 原型,原型链,继承
- 原型继承的优缺点
- 可实现3列布局的方法,我说了4种
- 说一下异步
- setTimeout
- 有关setTimeout的2道题
- 写个AJAX
- 封装一个AJAX
- TCP三次握手
- TCP在哪一层
- fetch有用过吗,没。。
- 数据库的操作
- 队列和栈
- 实现一个链表
- 进程和线程
- 操作系统内存调度的解决方法,说了3个
- 还有什么想问的
整体来说1面难度中规中矩,相比其他公司问的更广一点,但是深度没有其他公司深。
2面 (1小时10分钟) 视频
- 自我介绍
- 大学里面学过哪些课
- 搜索树、B树知道吗
- hash表的特点
- TCP和UDP区别
- 怎么选择TCP和UDP
- tcp/ip协议族分哪些层,都有些什么协议
- 双向绑定
- 文件路径问题(没能理解到问的什么)
- 手写大数相加
- 自己说一下自己研究过的地方,说了性能优化
3面 hr
谈薪资。