2018届前端校招面经:百度、网易、搜狗与阿里
这份面经是两年前的,楼主已经毕业在淘宝待了一年啦,新的面经分享大家可以看这个帖子 毕业一年的阿里学长秋招经验分享
时间过得很***觉昨天还在军训,今天就要毕业找工作了🤕。互联网的校招开始的很早,九月底已经是尾声了,对比春招时候的磕磕碰碰,校招可以说是异常顺利了,面一个过一个的那种顺利。。。其实自己的水平还比较有限,要说的话应该是准备的比较好吧。
好了,言归正传,校招总共面了四家公司,按照时间顺序分别是百度网页搜索部、网易杭研公共技术部、搜狗浏览器、阿里不知道什么部(校招大流程😂),下面分别写一下面经记录一下。(时间过去挺久了,结合自己的笔记,能写多少写多少)
一、百度网页搜索部
百度是从学长哪里要到的内推信息,投的提前批(我不会说我的笔试通过率有多感人的),总共三面,两轮技术面加一轮总监(经理?)面,记录如下:
一面
一面是个小姐姐,特别爱笑,整个面试过程很轻松,给我的校招处女面开了一个非常好的头。就是她刚开完会回来面试,而且感觉她也是第一次面别人,有点紧张的样子(她一紧张反而我就不紧张了👻)
- 引用类型和原始类型
- 本地存储(cookie, sessionStorage, localStorage)
- 跨域的方法(JSONP, CORS, iframe+document.domain, window.name)
- 同一个浏览器不同页面的通信(我答的是用sessionStorage或者后端解决,面试官说可以用window.postMessage)
- 听说过service worker吗(我说没有🤐,其实是一种前端耗时任务的解决方案)
- 说一下从URL输入到页面渲染的这个过程,越详细越好(记住这个问题,后面还会出现好多遍🙄,我主要答的是浏览器缓存的机制)
- 根据上个问题顺路问了一下前端性能优化(请求数量,请求带宽,缓存利用,页面结构等角度)
- 为啥要用Redux(因为想学。。然后简单谈了一下Redux的优势)
- 二面*
二面变成了小哥哥(事实上面了那么多试除了HR以外几乎都是男生),然后说一面基础的东西都问过了让我介绍一个项目。其实有点怕问项目,因为虽然做的很多,但是因为自己没有总结的习惯,很快就忘了之前项目的闪光点了。然后介绍了一下暑假写的一个nodejs和爬虫的项目 - 为什么要用Python写爬虫,有什么优势吗(我说同步的比较清晰,然后可以开多线程,然后文件读写什么的比较方便)
- (说到了多线程)Node怎么处理高并发(答的事件循环,消息队列)
- (项目中提到了用mongo做队列,不要嘲笑我。。)为什么要用mongo做队列呢(首先说内存可能装不下要用持久化存储,然后其实用Redis性能会好的多,考虑不周,承认错误 Orz)
- 然后问关系型和非关系型数据库的差别,MySQL
- 前端安全的问题XSS和CSRF
- (说到了微信小程序)有遇到什么坑吗(就遇到过一个Input是原生组件的问题)
- 三面*
传说中的总监面。。其实可以认为是一个懂技术的HR跟你聊天,然后聊自己的前端之路,聊创业,聊实习,聊社团,聊了一个多小时。。但是聊得太开心了感觉有些问题被带坑里了 - 怎么评价自己现在的前端水平,10分制打个分吧(我。。。然后我就很诚实的说最近感觉业务代码写的好像没遇到啥问题了,就是前端可视化这一块需要提高一下)
- 那除了你刚刚说的前端可视化这一块的,其他方面你觉得自己还有哪些不足呢(懵逼脸,都忘了自己咋答的了)
- 怎么看待帮别人打工和自己创业
感觉自己聊得很诚实。。可能表现的有点自信过头了(参考我大一面试学生会被刷Orz),还好最后拿到了offer(还要心疼一下我的机票钱)🤕。
二、网易杭研公共技术
还是原来的地方,还是熟悉的味道🤡,之前来实习过感觉就是会更亲切、更有底气一点。不过自己毕竟是回来面试的,还是有点点紧张的。
一面
一面的面试官是个特别爱笑的小哥,但是可能我的场次比较晚,所以看上去很疲倦。然后一上来就跟我说他从早上九点就过来了,中午都没有休息,有点累让我谅解一下(Orz,累你还这么犀利🤕),一面时间挺长的
- (自我介绍里有React单页应用)SPA的路由是怎么实现的(答hash和history)
- 老的浏览器不支持hashchange这些事件怎么办(不会。。面试官说可以用轮询)
- URL输入到渲染(又是这个问题)
- 怎么判断DOM树构建好了(DOMContentLoaded)
- 不支持这个事件怎么办(轮询?)
- 介绍一下React(blablabla)
- 怎么从虚拟的DOM结构映射到实际DOM结构的
- this的绑定
- 实现一个方法删除数组指定位置的若干元素并展开插入一个数组(使用apply改造splcie方法,没答好🤕)
- 介绍一下原型链
- new做了什么(脑抽了不知道咋写代码就大概说了一下,其实很简单的,有点气)
- XSS和CSRF,介绍一下HTTP,PUT、PATCH、POST的区别
- 知道CSP吗(Content Security Policy,防XSS的一种协议吧)
一面下来感觉我也挺累的。。面试官应该更累了,太负责任了😶 - 二面*
二面和杰哥开心的聊项目🤗 - 三面*
HR小姐姐面。。还是很有质量的一次面试,问的东西大概列举一下: - 之前在网易实习的收获
- 对网易的看法
- 创业有没有遇到什么问题,怎么解决的
- 赚了多少钱。。
- 在社团的职责
- 怎么做培训?怎么带项目?怎么做部门建设?
- 怎么解决部门小朋友们水平参差不齐的问题
聊了挺久但是挺开心的,因为都是自己的亲身经历,还是有很多东西可以说的。顺便感慨一下网易的HR小姐姐的声音都好好听🤒。
三、搜狗浏览器
之前找人帮忙投的内推,在过了n久我都快忘了的时候突然给我打电话让我去面试(感觉校招做的不到位啊)。。第一次在西安本地面试,然后连着三天天天早上跑到高新区去,困死我了😴。但是面试体验还是很好的。
一面
一面被一位霸面的同学插队了,等了大半个小时。不过还是可以理解的,春招霸面腾讯干坐了一天,回想起来还是很感触的。然后面试官先给了一份笔试题,题目大概是这几道:
- 画一下盒模型
- 写一下一栏定宽一栏流动的布局,越多越好
- 实现一个判断元素是否可见的函数
- 遍历所有DOM元素
- 实现从左上角移动到右上角的动画
都比较基础。答完笔试题后面试官拿着我和霸面同学的答案让我们讲一下自己的思路,感觉相当的亲切。不过面试的时候还是挺严肃的。 - 对比一下React和Vue
- React数据流向,父子组件通信,没啥关系的组件通信
- 观察者模式(store.subscribe)
- redux源码
- 定宽+流动布局有没有更多的方法(浮动,flex,position,负外边距,BFC)
- 手写代码:获取两个元素最近的公共父节点(单链表的交叉点,没答好,复杂度高了)
- 手写正则:匹配以.js而非.min.js结尾的文件名(正则不太熟Orz)
- 二面*
二面在面试官的酒店房间里😯,然后一面的面试官在面另一位同学,感觉是两个人交叉着面试吧。言归正传: - js数据类型
- 手写实现一个深拷贝
- (对着代码)传入null的话类型是不是不对(我记不清typeof null是啥了)
- new Number(1)这样得到的结果是什么类型的,函数呢(然后让下去看jqeury怎么实现类型判断的,其实就是对象的话调用toString,null使用String构造函数)
- 原型链介绍,new做了什么(这次可不能写错)
- Sub.prototype = Func.prototype是不是引用传递?怎么规避?(用Object.create)
- 介绍一下闭包
- 手写代码:一个列表点击某一个返回它的index(用了事件***然后indexOf实现的,面试官又让用闭包改了一下)
面试还是很愉快的👻 - 三面*
第一次见到这么像程序员的HR。。除了基本情况外还问我会不会PHP,JAVA之类的,还问LAMP架构🤕,然后有没有其他offer之类的问题。面完之后面试官亲切的和我握手。。。可惜是个大叔。
四、阿里校招
阿里本来以为已经GG了。。毕竟之前大二大三面试练手各种面阿里,感觉都要被拉黑了😂。很意外的过了校招笔试拿到了面试机会。这里不得不承认阿里的前端笔试题出的很好,都是一些很前端的题,而且感觉非常巧妙,不会像有些公司无脑出算法计算机基础筛人。阿里总共面了四面(还听说过内退转校招面七八轮的人。。),三轮技术一轮HR。
一面
一面整体感觉很难。。一点都不常规,各种深入的问题,而且面试官的话筒不太好听不太清,就很紧张🤕
- SPA怎么实现的(和网易一面的题一致)
- 聊一下URL输入到渲染的过程(这个也是老问题)
- DOM树的构建和渲染树的构建
- reflow和repaint
- display:none会出现在渲染树里吗,确定吗?
- 事件处理机制
- 如何实现对一个DOM元素进行深拷贝,包括它绑定的事件
- 用addEventListener绑定的事件呢(答不太清楚它是怎么实现事件绑定的。。)
- 要你来实现这个方法你怎么实现呢(答改造对应的on+event方法)
- 场景:实现一个类库,统计开发者的请求延迟,要求对开发者透明(原话不是这样的,场景特别长又听不清难受死我了🤕,答:改造reqeust方法,类似于redux-thunk的实现方法)
- 那上面的方法如果有大量的并发,怎么缓解服务器压力?(答先把测试值放到本地队列里然后统一发到服务器)
- 手写代码:深拷贝
- 手写代码:使用promise实现,A、B同时进行,A、B任意一个完成后执行C(我理解的是简单的A、B同步开始然后状态变化执行C,面试官说不对。。)
面完以后感觉累死了。。然后约了第三天面剩下的。 - 二三面*
本来看一面那么难,以为二三面要爆炸难呢。。。没想到居然很常规,套路都是:讲个项目,然后延伸开来讲,很多问题上面都提到过了,就提一下不一样的。 - (聊到了canvas)canvas怎么优化性能
- 为什么使用gulp呢
- 介绍一下webpack
- 有没有比较复杂的正则表达式的案例(没有。。就讲了一下正则的一些规则)
- 听说过weex吗(听过没用过。。然后就答了一些RN和微信小程序的东西)
- 可以介绍一下CDN吗
- HR面*
阿里的HR好像挺忙的,面的贼快。让介绍一下自己的基本情况,学习方法,兴趣爱好。然后按照她的要求介绍完了以后再随便聊了点别的就结束了,有点懵逼😕
秋招总共面了这四家公司,没有什么遗憾。马上就要工作啦,共勉!😠
#阿里巴巴##腾讯##百度##网易##微信##搜狗#传送门 毕业一年的阿里学长秋招经验分享