2018成都蚂蚁金服两年前端社招面经
过年期间抱着试试的态度在投了好几次蚂蚁金服,本以为没戏了,结果在一周左右的时间意外的收到了电话面试的通知,受宠若惊,紧张又激动地不停的复习、刷题。电话一面:面试官比约定时间提前五分钟打来了电话。首先是一波准备已久的自我介绍,最后介绍了自己熟悉的技术栈,面试官就开始提问了。1.直奔主题,介绍一下vue和react都有的虚拟dom机制。本来就够紧张的,这问题让人一哆嗦,万一...
过年期间抱着试试的态度在投了好几次蚂蚁金服,本以为没戏了,结果在一周左右的时间意外的收到了电话面试的通知,受宠若惊,紧张又激动地不停的复习、刷题。
电话一面:
面试官比约定时间提前五分钟打来了电话。首先是一波准备已久的自我介绍,最后介绍了自己熟悉的技术栈,面试官就开始提问了。
1.直奔主题,介绍一下vue和react都有的虚拟dom机制。
本来就够紧张的,这问题让人一哆嗦,万一不够深入怎么办,一下头皮就开始发麻。我组织了一下语言,按照自己的理解把vue创建节点、节点树,通过改变节点树而使真实dom进行响应这几个方面进行回答。然后面试官又问那么虚拟dom在js里是个什么东西,不可能凭空出来的吧。当时没有反应过来面试官想问的是什么,就在那有点发愣,面试官看我尴尬就解答到“就是一个js对象嘛”。原来是问的这个,感觉一下自己就low了很多。
2.vue、react与jQuery相比有什么优缺点。
这是个比较开放又常见的问题,可以从数据驱动、数据单向流、少直接操作dom这些方面来说。V还有双向绑定,然后V和R又更好的结合了webpack等打包工具,提供了模块化、组件化式的开发。然后缺点,我就说了因为是数据驱动,页面上会有许多数据(js变量)会存在,导致内存占用相对较大。
3.ES6与原生JS。
问到了常用的ES6语法,我就一大巴拉子提到了let、const、箭头函数、promise、…、for of等等,然后面试官通过const来考了对象的引用,出了两个场景题来考箭头函数和function的区别,又衍生到call、apply、bind三者的问题。这些是每个公司前端面试的基础常见题。
4.移动端布局方案。
该问题主要是考察在移动端上的css适配方案,因为本人这一年来移动端做得较少,还是按照理论来谈,提到flex、css-grid、rem、媒体查询、百分比等,最后面试官又提醒了他们现在常用的css3的vw和vh方案,视口百分比。
5.移动端场景题。
很经典的一个题。一个未知宽高(不是不定宽高)的父div里有两个子div,他们宽度一个是40%另一个是60并且并列着,并列方式不用关心。现给两个子div加一个1px的border,第二个盒子就会被挤下去,求几种解决方案。很快就想到了怪异盒子,之后就再也想不起来了。面试官就提醒了css3计算属性,还有甚至用阴影或者outline来画线更加巧妙。
最后就是我有什么想问的。一面大概有四十多分钟,期间从几个常见的方向去考察了面试者的基础水平。面试官非常和蔼,一时想不起来他会鼓励你没事,没有答全的他会给你补充,整体下来就像是一场交流。
一面感觉回答得只能算中规中矩,没有表现得非常优异达到自己的一个期望,确实自己在移动端这块涉猎得不够。当时面完就感觉应该没戏了,结果在十天左右又意外的收到的二面的通知,欣喜若狂。面试官让我选择是现场还是电话,我本心是希望现场的,感觉自己电话发挥得不行,结果因为和面试官时间约不到一块去,最后还是选择了电话。
电话二面:
紧张依旧,这次面试官比约定时间晚了十五分钟打来。
1.介绍印象最深刻的项目
这个问题就是面试官熟悉你项目的过程,我就把公司里的核心项目与开发模式大致讲了一遍,具体讲下我负责的和我做出的贡献,还有学习到的东西,不管是对研发流程还是对开发部署的思考,都给面试官霹雳扒拉的讲了一遍,听完面试官好像还是比较满意。
2.你为什么没有使用react
最主要的原因是公司的技术选型没有选用react。我们也有考虑让某些业务用react来做,但是其实在公司发展初期会有所增大开发成本,需要多多考虑团队,一个程序怎么让用户用的爽,也让团队开发得爽,自己玩的话都无所谓。其实这个本质的话选用哪个都可以,我的理解是大型应用react比较适合,中小型vue比较适合。编程语言都是一通百通的,更不要说这本身就是js框架,如果一个吃透了那么另一个也是得心应手的。
3.双十一淘宝首页的前端处理
从来没有接触过这类高并发高可用的前端架构,只能按照自己理论来回答,从浏览器端发起到浏览器接收。什么浏览器的静态资源缓存、静态资源的cdn缓存、分布式缓存、服务端缓存、http2.0推送等等。当时一个紧张,就从http开始讲了,面试官不是很满意,自己答得方面不够多,而且也答得不深。其实后来去淘宝网逛了逛,发现localStorage里也有很多大名堂,会存一些不怎么改变的静态数据和图片的base64编码。除此之外还有很多方案,自己确实没有在性能这方面做到极致也没有这样的业务所逼,暗自觉得这个方面能力不够。
4.对mongodb集群的认识
因为集群这方面的部署是公司架构师和运维在负责,对这方面了解得不多,就只答了集群会有主从部署,有负责读有负责写的,会相互同步。如果主数据库挂了副会顶上来。
5.笔试
最后给了一道深度优先搜索的题,45分钟做完。因为要求不允许用递归,平时都是用的递归,没有在规定时间做出来。50分的份交了递归的卷,再琢磨了一会儿使用栈的方法加while循环做了出来。
面试官虽是同样和蔼可亲,但不出意料的二面GG了。不过这次还是得到了很多的收获,感受了下BAT的面试氛围。大公司一个是考验基本功,一定的计算机基础和扎实的前端基础,还有一个就是会有场景题来考验你的技术深度。在工作中一定要多加思考,多做总结,在某个方面多去深入了解,有自己的一技之长。
更多推荐
所有评论(0)