蚂蚁一面

问题大致如下:

0:大致说说自己从什么时候开始接触前端的

时间越久越好,如果你说临时抱佛脚,基本就与阿里说拜拜了。

1:position 有哪些(并且 absolute 与 fixed 区别)

如果手动写过 css,不难回答。

2:闭包是什么

说闭包的时候,最好讲一下常见用法。

3:手机端 web 有没有做过

大致了解过,自己的网站也做了手机端的自适应。

4:web 性能和资源优化

有个雅虎网站性能优化的黄金法则,我当时就回答了几点。

5:简历上有 web 安全,问了 xss 和 csrf

前端开发人员必须要知道的一类安全知识。

6:状态码 302 304

从 1~5 都介绍一遍吧。

7:介绍下浏览器缓存

刚好和状态码 304 结合起来。

8:介绍 js 中事件 (冒泡 委托)

事件冒泡和事件捕获,执行的先后顺序,还可以说一说关于事件委托。

9:获取前端资讯来源

微信公众号、微博、GitHub、SegmentFault 等等。

10:用过哪些后台语言(nodejs 用过哪些框架)

nodejs 和 python,用过 nodejs 的 express 框架。

11:哪些流行的前端技术,对前端的前景和职责

比较火的有 MVVM 框架 react、vue,ES6 肯定会在近几年统治前端,Nodejs 也是前端必备技能。关于前端的前景,我觉得 H5 配合 react、vue 是热门,前端可视化(ant-design),还有专门研究 nodejs(eggjs),webVR 可能会在未来的几年大火一次。职责还是负责与用户的交互,考虑性能、资源方面的优化,全栈是每个前端程序员的梦想。

12:行内元素和块元素区别,p_w_picpath 标签属于哪种

比较基础的一个题目。

13:浏览器如何进行本地记录

localStorage、sessionStorage,当然 cookie 和 session 有时候也可以用来缓存。

14:js 基本数据类型

光知道基本数据,如果能扩展,就更好了,比如引用数据类型和非引用数据类型,就是常说的堆和栈。

15:哪些跨域手段

jsonp 和 cors 这两种说一说就行了,其他的方法可适当谈一谈。

16:call apaly 区别

可以定义上下文,参数不一样,apply 的参数是数组,如果能和 bind 扩展就更好了。

17:null 和 undefined 区别

送分题,null 表示空,需要人为赋予,undefined 变量声明但未定义,对象属性为 undefined 表示没有该属性。

一面的题目就这些,都是非常基础的,因为每个题目都或多或少有些扩展,面试时间大概 22 分钟,自我感觉良好。

推荐大家面试前先去刷题:Front-end-Interview-questions前端开发面试题。这两个可以算作 github 上前端面试宝典,至少刷个三遍以上吧。有些题目不是靠死记硬背,需要平时的积累的,面试官一深入就全露馅了,平时积累非常重要。

蚂蚁二面:

1:介绍一下学习前端多久了

2:什么项目最印象深刻

我说的是 unity3d 的项目和自己的 hexo 博客,大致问了一下这两个方面的内容,然后又问我要了博客地址。之后又问了我一些 unity3d 方面的知识。

然后面试官说二面要视频面,下次再约。

3 月 7 日,周二,晚上八点半,蚂蚁金服面试官(同一个)问我有没有空,我答有空,开始面试,自带纸和笔。

接着上次的来,已经了解基本情况了,上来就问了一下关于项目的基本知识,现在的基本情况,以后的人生规划,我当时还疑惑,为什么不问技术。

然后就开始问技术了,面试官先让我拿出纸,写正则表达式,因为我简历上写的对正则表达式精通。先写了一个邮箱的,当时很懵逼,因为邮箱不难写,主要是能否考虑全面,@ 之前和之后,胡乱写了些,面试官提了一点意见。又问我 \s \S 区别,写一个字母数字下划线的集合,就写了 [a-zA-Z\d_],没想起来还有 \w,懵逼。其实写正则的话,我是一点都不怕的。

接着又让我写了一个冒泡算法,在纸上写算法,真的很痛苦,花了几分钟写好了,大致是对的,不过手写冒泡算法,还是让我怀疑了一下人生。面试官问,能不能传入第二个参数,来控制升序和降序,我说可以啊,用一个 boolean 型就行了。还有吗,string 或 int 也可以吧,还有吗?如果传入一个函数,可以吗。原来是这样,我当时就想到了 sort 函数,原来面试官想考这个:传入的函数接受两个参数 a,b,刚好可以在 冒泡排序 if 括号里使用,当返回 true 的时候,就交换位置,返回 false 就不交换。(sort 函数应该就是用冒泡实现的)面试官根据这个问了我函数式编程,我把前段时间 阮一峰老师写的那篇函数式编程的博客拿来说了一说,什么函子呀 map reduce 呀,还好面试官没有深追。

趁着我写代码的几分钟,面试官去我博客逛了一下(百度统计),剩下的东西都是我博客里的了,我写过 react,es6,jquery 源码,都被问到了,其中 jquery 源码问的比较多,比如印象最深刻的地方,学到了什么,如何进行链式调用,当初为什么要看源码。es6 问了我一些新特性,实在想不起来了,就回答了几个很普通的:箭头函数,let const,class。说到 class 的时候问我原型链和 es5 实现继承,这个都不是很难,说都挺好说的,没有让实现,真实万幸。(实现起来会比较麻烦)

熟悉 nodejs 吗,大致了解,blablabla。

又问我 css 和 js 哪个更好一点,我说两个一样好。面试官又问了我几个 css 方面的知识,比如 position 有几个取值和区别(一面问过啦)。

大致就这些吧,大多数的时间,面试官都在跟我聊人生。问了我以后期望哪里工作,加班,还问我有没有女朋友,最后问我对 h5 手机开发感不感兴趣,我说只要是前端,都感兴趣,我自己的博客就移动端适应。

二面两次时间加在一起大概有一个多小时,自我感觉良好。

蚂蚁三面:

3 月 13 号下午四点半,面试官打电话过来,问我有没有时间面试,电面,我说有,就开始了,应该是三面。

这次面试技术问的不是很多,全是实习内容,我简历上贴了两次实习,基本上就是围绕这两次实习展开的,每个实习下面都有三句话,面试官读一句,然后问你具体干了什么,学到了什么。这些坑都是以前自己挖的,该怎么回答,自己都反复琢磨了很久,很轻松的就回答了出来。反正我每说一个点,我都会强调:我喜欢前端,我想要从事前端,我自学前端很久了,我做过前端的项目,我很喜欢 js等等。一定要给面试官一个错觉:这位同学对前端很感兴趣。

和面试官聊的很开心,历时 14 分钟吧,面试官也没有难为我,最后客气的问了一下:你有什么想问的?

我先问了一个问题,每次打电话显示都是 010 北京的区号,我投的岗位是杭州的,我问了面试官,他说他们电话是统一由北京转的,面我的部门是北京的蚂蚁金服。想到这里我就开始慌了,我投递的是杭州岗位,居然是北京的人面我。

又问了一下实习生进去都做哪些工作,然后就是谢谢

蚂蚁HR面:

3 月 20 号下午六点十分左右收到 HR 电话,是个姐姐,声音超级好听,不过当时在吃饭,就约了第二天,电话显示的是杭州区号。

3 月 21 号下午三点半,收到电话(等了一整天),还是那个姐姐。先介绍了一下自己,目前的状况,HR 姐姐又问了什么时候毕业。

后面的内容大概围绕来以下几个问题。

1: 你学前端多久了;2: 平时怎么来学前端;3: 除了前端,还了解哪些技能;4: 你有啥优点和缺点;5: 你有什么问题问我。

没有问到技术方面的问题,就是了解一下基本情况。

我问了以下几个问题:

1: offer 什么时候发:

5 月份统一发。

2: 面我的部门是做什么的(之前已经知道了,蚂蚁聚宝):

HR 姐姐说了一大堆,涉及很多技术问题,感觉 HR 姐姐还是懂技术的。