令人怀疑人生的蚂蚁一面(前端)

3-13号下午两点20左右来的电话,当时还在午休,看到是浙江杭州,衣服都没穿就起来哆嗦着开始面试。

面试官:你先做下自我介绍吧。
我:balabala。
面试官:你在学校学过什么知识。
我:(怕给自己挖坑但不说又不好)数据结构与算法,计算机网络,Java。
面试官:操作系统学过吧。
我:学过。
面试官:进程和线程的区别知道吗?
我:(慌,简单地说)一个进程包含多个线程。
面试官:进程间如何通信?
我:...
面试官:操作系统中有几种状态(管理员状态之类的)。
我:管理员状态?(喵喵喵?)
面试官:tcp/ip三次握手说下。
我:(答得不是很全,此时感觉这样下去绝壁挂,得赶紧让面试官问前端基础知识)我经常翘课在宿舍学前端,所以学校的知识不太会。= =
面试官:(笑)没关系,我就看看你学校知识知道多少。说说你做的项目吧。
我:(大概讲了一下项目包含的各个板块)。
面试官:有没有上线。
我:没。
面试官:有移动端的经验么?
我:有一个微信企业号的。
面试官:说说遇到的难点。
我:(组织语言中,不知道该怎么说)
面试官:或者说踩过什么坑吧。
我:说了下用ng-file-upload上传图片php那边接收不到图片的问题,说后来换成h5的FormData对象再加上原生ajax解决。还有就是有关如何重写ng封装的$http.post来提交application/x-www-form-urlencoded的数据,说用for in遍历要传给后端的对象,然后把key=value用&拼接起来。
面试官:你只是写了一个单纯的遍历是吧,万一你要遍历的对象的属性里包含对象呢。
我:当时做的只是简单的对象,没有多层深度。(想了会儿,千钧一发之际)可以在遍历时判断当前属性是不是object,是的话继续遍历这个属性,写一个递归。(递归这个词几乎和面试官同时说出来,好险)
面试官:都是和ng有关的坑,你知道移动端的响应式如何做吗。
我:媒体查询,根据当前设备大小显示不同样式。
面试官:除了媒体查询呢。
我:。。。
面试官:(开始问布局的问题了)说一下你对布局的了解。
我:(拿垂直居中做例子,给他讲了几种div垂直居中的方式,提到了flex)。
面试官:说下你了解的flex。
我:说了下两条轴和justify-content等属性。
面试官:(我之前提到的垂直居中有个设置absolute然后top50%并且margin-top为负的高度的一半)如果这个div的高度是自适应的呢。
我:。。。
面试官:table知道吗。
我:(连忙)哦,对,可以设置display为table-cell,然后vertical-align为middle。
面试官:那多行文本居中有哪些方式?
我:除了刚才提到的,还可以设置div的padding-top和padding-bottom相等。
面试官:万一现在要求你不能设置padding呢。
我:那就用之前的方法。(面试官笑了笑)
面试官:对,刚才说到定位,讲一下relative和absolute。
我:(讲到relative时,说不脱离文档流,是相对于其在普通流中的位置进行定位)。
面试官:好,万一他的父级有margin 和padding呢,他是相对于margin左上角还是content左上角还是padding左上角?
我:(猜)padding,应该是padding。
面试官:说到布局,讲一下两种盒子模型。
我:(讲了下ie和w3c盒子模型以及区别)。
面试官:那你知道box-sizing吗?是用来干嘛的?
我:box-sizing有两种值border-box和content-box,用来决定让div以哪种盒子模型展示。
面试官:那你知道css3还有哪些和box有关的属性吗?
我:box-shadow。
面试官:来讲下js基础吧,js有哪几种基本数据类型。
我:5种,数字,字符串,布尔值,undefined,null,但typeof的结果有6种可能。
面试官:只有这5种吗,es6新引入了什么。
我:Symbol。
面试官:Symbol是用来干嘛的。
我:。。。不太了解,es6可能就promise用到过。
面试官:讲下promise。
我:balabala
面试官:promise是用来干嘛的?
我:处理异步,摆脱回调地狱。
面试官:promise如何捕捉异常。
我:.catch
面试官:除了这个呢?
我:。。。
面试官:假如现在有三个异步任务,一个需要3s,一个需要2s,一个需要1s,你如何设计promise使最短时间内完成所有处理。
我:(想不出来)。
面试官:(笑)没关系(开始怼React Native相关)一个移动应用,你是如何设计他的组件的?
我:(想了会儿)多处用到的抽出来单独作为一个组件(又想了会儿,没再说出来)
面试官:没关系,说下单向数据流和双向数据流。
我:(= =说的是双向绑定和单向绑定的,不知道对不对)
面试官:我这还有最后一个问题,上拉到底部加载新数据的组件写过吗?
我:类似lazyload?
面试官:跟lazyload不同,如果让你设计这个组件你会如何设计。
我:(说了下如何实现)判断需要加载的新数据是否滑到了用户可见的区域,然后加载新数据。
面试官:代码怎么写。
我:(说不出来)
面试官:知道scrollTop吗(然后给了我一个公式)。
面试官:(笑)你看过的书还挺多的(自我介绍里),有什么要问我的吗。
我问了几个(完)

有些问题不太记得了,大概只记得这些,一共面了50分钟左右,感觉是挂了。

总结:一面问了挺多有关项目的问题,给我的感觉就是问的很实际,没有实战经验一句话说不出来那种,还有就是,面试官不会主动问基础知识,在你讲的时候有提到的话他会切入问,而且也不是简单答出来就完了,面试官会继续深入问,一直到你答不出来为止(是的没错,几乎每个问题都一直问到你答不出来),还有就是面试官会现场给一些场景让你设计或者给予你的解决方法再添加些东西问你怎么办之类的,总之一句话:问得很深。不过阿里的面试官人真的好,全程气氛特别轻松,答不出来的他会给你提示。挂了也能学到很多。

(最后,求安慰= =)
#阿里巴巴##前端工程师#
全部评论
看的我也怀疑人生了,感觉好难
1 回复 分享
发布于 2017-03-14 12:08
说实话我是转行的,计算机方面的不会。但是其他问题都是基础,你就是太被动了。你应该把一些大概会问到的东西用自己的话表达出来。
1 回复 分享
发布于 2017-03-14 12:29
想起来还问了几个restful的问题,restful接口怎么设计的,跟其他的有什么区别之类的。
点赞 回复 分享
发布于 2017-03-15 18:45
摸摸~~~~
点赞 回复 分享
发布于 2017-03-14 11:56
我也开始怀疑人生了。。。
点赞 回复 分享
发布于 2017-03-14 12:49
兄弟,你就是面的少了,面经看的不多才会这样。你最好把自己会的知识点捋一捋。阿里巴巴现在校招很难进了,加油吧,祝你拿到好offer
点赞 回复 分享
发布于 2017-03-14 13:41
同怀疑人生,感觉楼主比我厉害呢
点赞 回复 分享
发布于 2017-03-14 15:03
进程间通信,直接编
点赞 回复 分享
发布于 2017-03-14 17:34
问的也太广了吧 ,怀疑人生+1
点赞 回复 分享
发布于 2017-03-14 19:13
投菜鸟直接挂了简历……(人生苦短,我学前端)
点赞 回复 分享
发布于 2017-03-14 19:44
阿里一面75分钟 ,网络、操作系统、算法问了挨个来。。。
点赞 回复 分享
发布于 2017-03-15 18:20
多面面就好了。。这些比较常见。。去年秋招百度一面搞了70分钟。。
点赞 回复 分享
发布于 2017-03-15 19:30
你状态什么时候改的?我一面之前是待安排面试,一面之后是面试中,但是三天没消息了,是不是gg了?
点赞 回复 分享
发布于 2017-03-15 20:45

相关推荐

11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
点赞 75 评论
分享
牛客网
牛客企业服务