前端面经系列(二)

InfoQ 2022-05-14 11:48:12 阅读数:561

前端系列InfoQ端面technology-development
9月2号,当时看到我的个人状态变成了”待面试“,那个时候,真的很高兴,因为身边很多人都被刷掉了,包括大把大把的研究生。有时想想,现实就是这么残 酷,有人通过,就有人铩羽。我预约到了9月12号,地点是武汉纽宾凯鲁广国际酒店,是一家五星级的酒店。阿里巴巴的财大气粗的形象瞬间跃然纸上,别的公司 都是在学校里面搞笔试面试,它在5星级的酒店里。可能阿里面对的不是一个学校的学生,而是整个武汉,甚至是华中地区的学生吧,这样做会让面试流程更加规范 吧。当然,也有部分是为了公司的宣传。

null
笔试通过之后,这10天我并没有闲着,我开始复习前端,这个庞然大物。要复习的知识真的是太多太多,概念也完全无法穷尽。从基础知识到高级知识,然后是 项目经验,实习经验的总结,以前编写的代码的总结,开源框架jQuery,EXT, YUI源码的复习,nodejs,Html5,前端开发工具,性能优化。我觉得10天确实太过于短暂。

时间真快,9月12号那天下午,我带上简历,武汉理工大学经纬网聘书,爱立信实习证明,黑客马拉松一等奖证书,信心满满的奔向了人生的第二场面试。

3楼大堂的人真多啊,小数一下,也有四,五百人吧,人流络绎不绝。有从湖南那边赶过来的,有来霸面的,早该猜到了,有无数个人想进阿里。当然招聘5个 人,面试官可能会面50个或者100个,真是千挑万选啊。当时我就在想,面试的时候给面试官留下深刻的印象是多么重要啊。下面直奔3轮面试了。

一面是纯技术面,所有的问题都是技术问题,问题问的很深,但是同样考察到了基础的掌握。刚刚见到面试官的时候,我递上了我准备的其它材料。然后面试官让我 谈项目经历,然后我说了之前参加黑客马拉松时候的一个项目,采用google angularjs、cordova和爱立信LTE broadcast部门提供的高通API去实现一个基于 androi 
《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】
 d平台的app,后台使用nodejs实现的http server和backbone.js。数据库采用android平台 下自带的sqlite3。实现了RSS订阅功能,数据广播和点播的功能,并且使用cordova自带的Media播放 插件实现音频文件的播放。为力求高效,我们使用了ionic。然后面试官问为什么选择angular? angular相比其它前端框架的优势?然后面试官准备了一些问题,如下:

null
1, 写一个正则表达式,规则我忘了,反正挺长的(需要现场写code)

2, 前端安全(XSS,sql注入,CSRF)。问有没有那些攻击别人站点的经历,然后问CSRF的原理,一些html code如果要显示在页面上,怎么处理,当然是通过编码解码啦,哈哈。

3, 兼容性问题

ie6下的奇葩太多了,浮动双边距,上下margin,微高,png兼容,然后问我引入脚本处理png图片的原理。。。

4, 输入url到页面出现的过程

包括DNS解析,TCP连接,HTTP GET获取数据,加载DOM树,渲染树,然后问了下哪些地方会出现css阻塞,哪些地方出现js阻塞。ie各版本和chrome可以并行下载多少个资源。

5, 跨域请求及实现的原理

比如jsonp,window.name, iframe,window.postMessage。jsonp的原理是动态插入script标签

6, 问了一个算法问题,字符串匹配相关的(需要现场写code)

先是用数组去模拟,后来讲的时候发现不行,改成了hash表

7, javascript里面的继承怎么实现,如何避免原型链上面的对象共享(需要现场写code)

回答当然是经典的构造函数和原型链的混合模式去实现继承的啦,避免对象共享可以参考经典的extend()函数,很多前端框架都有封装的,就是用一个空函数当做中间变量

8, 设计模式的一些问题

我谈了下XHR工厂和事件委托里面的中介者模式

9, 异步加载和延迟加载的实现。

面完之后,面试官和我深情的握了一个手,看的出来,他对我的表现非常满意。

出去等了一会儿,用手机刷新了一下官网状态,发现一面通过。等了10分钟之后,接着参加二面。

二面的问题感觉让我很尴尬,部分技术问题,部分团队,项目问题。大概是下面这些:

1,你是学软件工程的,为什么搞前端?

2,看了你的简历,项目经历这么丰富,你说说你从这么多项目中,学到了什么?

3,项目中和他人有所分歧的时候,怎么办?

4,你当初为什么考虑引入angular?而不是其他框架?

5,html5开发的一些经验和问题(作为前端达人,一般这个问题,必扯localStronge, webgl, device api)

6, 对阿里巴巴有多少了解?

7, 以后想去杭州还是北京啊,为什么不选择北京?

8,以前做一个项目,如何和团队中其它的成员分工?是按板块分还是页面分

9,如何带一个新人?

10, 性能,如何去测试。代码层面,哪些地方可以优化性能(提到了一下重排和重绘)

11,谈了下grunt, YUI compressor 和 google clojure用来进行代码压缩的用法。

出去等了一会儿,通知3面。

当时挺激动的,一般3面基本不怎么刷人的,当时觉得这次面试稳了。三面是传说中的交叉面,也就意味着一面,二面表现优秀,工资会有所提高。当然,交叉面当时我也不知道,时候听别的学长说的。

3面HR问题:

1, 自我介绍

2, 实习学到了什么? 有没有拿到爱立信的offer?

3, 为什么想要加入阿里巴巴?

3面技术官问题:
版权声明:本文为[InfoQ]所创,转载请带上原文链接,感谢。 https://xie.infoq.cn/article/9c00c1f4a3ea472ee1fd421b4