面试分享:一年经验初探阿里巴巴前端社招

一般阿里社招都是招3-5年的P6 高级工程师,当初自己一年经验也没有想过有这个面试机会。

虽然没想着换工作,但是经常关注一些招聘网站的信息,某一天,在某boss上有个人找我,叫我发一下简历,我一看是阿里的某技术专家,虽然之前也有阿里的在某boss上给我要简历,但是我深知自己经验不足,然后给boss说我是16届的,只有一年经验,然后就没有然后了。这次我依然这么回复,但是这boss说,没关系,他喜欢基础好的,让我可以试一试,于是我也抱着试一试的心态发了简历。

简历发过去之后,boss就给我打了电话,让我简单的介绍一下自己,我就噼里啪啦说了一些,还说了一些题外话。然后boss就开始问我问题。

由于面了四轮,所以最开始的面试记忆有点模糊了,细细回想,又感觉记忆犹新。

1.电话初探

1.说一下你了解CSS盒模型。

我就说了一下IE的怪异盒模型和标注浏览器的盒模型,然后可以通过box-sizing属性控制两种盒模型的变换。

2.说一下box-sizing的应用场景。

这个也不难,简单说了一两个应用场景,具体就不一一细说了。

3.说一下你了解的弹性FLEX布局.

这个我也比较了解,各种概念和属性能想到的说了一大堆,也扯到了Grid布局,基本这个也没啥问题。

4.说一下一个未知宽高元素怎么上下左右垂直居中。

说了一下flex弹性布局的实现,说了一下兼容性,扯到了postcss的一些东西,然后说了一下常规的兼容性比较好的实现。

5.说一下原型链,对象,构造函数之间的一些联系。

这个我之前写过相关的文章,自己也有比较深入的理解,所以这个也不在话下,噼里啪啦说了一大堆,也不知道面试官听得咋样。

6.DOM事件的绑定的几种方式

说了三种,然后说了一些冒泡,默认事件,以及DOM2,DOM3级的一些标准。

7.说一下你项目中用到的技术栈,以及觉得得意和出色的点,以及让你头疼的点,怎么解决的。

这个因人而异,开放性问题,主要考察平时项目的一些积累吧,这个我回答感觉也比较ok。

8.有没有了解http2.0,websocket,https,说一下你的理解以及你所了解的特性。

这个我看过一些文章,但是没有什么印象,扯了一些概念,但是回答的不是很深。

第一轮电话初探,大约面了50分钟,就记起来这么多,还有一些细节问题可能淡忘了,总体来说,面的都是以基础为主,然后boss说把我简历推荐给内部,进行正式的社招流程。

一轮技术面

然后当天晚上一个女的面试官就给我打电话了,说八点半进行下一轮技术面试,没想到效率这么快,我都没怎么准备。
这次就直接省略自我介绍了。

1.webpack的入口文件怎么配置,多个入口怎么分割啥的,我也没太听清楚。

这个自己就说了一下自己的理解,以及自己用node写的多入口怎么配置,然后面试官说不是多入口配置,然后我又说了一下自己的理解,然后这题就过了。

2.我看到你的项目用到了Babel的一个插件:transform-runtime以及stage-2,你说一下他们的作用。

这个我也还算比较了解,就说了一下ES的一些API,比如generator啥的默认不转换,只转换语法,需要这个来转换,然后说profill啥的,扯了一下stage-1,stage-2,stage-3,这个问题回答还算清楚。

3.我看到你的webpack配置用到webpack.optimize.UglifyJsPlugin这个插件,有没有觉得压缩速度很慢,有什么办法提升速度。

这个我主要回答了一下,我之前也没怎么了解,一个想到是缓存原理,压缩只重新压缩改变的,还有就是减少冗余的代码,压缩只用于生产阶段,然后面试官问还有呢?我就说,还可以从硬件上提升,可以得到质的飞跃,比如换台I9处理器的电脑。。。。

4.简历上看见你了解http协议。说一下200和304的理解和区别

这个噼里啪啦说了一堆,协商缓存和强制缓存的区别,流程,还有一些细节,提到了expires,Cache-Control,If-none-match,Etag,last-Modified的匹配和特征,这一块之前有过比较详细的了解,所以还是应答如流。

5.DOM事件中target和currentTarget的区别

这个没答上来。。。

6.说一下你平时怎么解决跨域的。以及后续JSONP的原理和实现以及cors怎么设置。

我就说了一下Jason和cors,然后问我JSONP的原理以及cors怎么设置,这一块自己也实践过,所以还是对答如流的。

7.说一下深拷贝的实现原理。

这个也还好,就是考虑的细节不是很周全,先是说了一种JSON.stringify和JSON.parse的实现,以及这种实现的缺点,主要就是非标准JSOn格式无法拷贝以及兼容性问题,然后问了我有么有用过IE8的一个什么JSON框架,我也不记得是什么了,因为我压根没听过,然后说了一下尾递归实现深拷贝的原理,还问了我typeof null是啥,这个当然是Object。。。

8.说一下项目中觉得可以改进的地方以及做的很优秀的地方?

这个也是因人而异,开放性问题,大致扯了一下自己的经历,也还OK。

最后问了有什么需要问的地方,面试到这里基本就结束了,大约面了一个多钟头,还是蛮累的。总体来说,回答的广度和深度以及细节都还算OK,觉得这轮面试基本没什么悬念。

二轮技术面

过了几天,接到阿里另一个面试官的电话,上一轮面试通过了,这次是二轮技术面,说估计一个钟头。这次依然跳过自我介绍之类的,直奔主题。

1.有没有自己写过webpack的loader,他的原理以及啥的,记得也不太清楚。

这个我就说了一下,然后loader配置啥的,也还ok。

2.有没有去研究webpack的一些原理和机制,怎么实现的。

这个我简单说了一下我自己了解的,因为这一块我也没深入去研究,所以说的应该比较浅。

3.babel把ES6转成ES5或者ES3之类的原理是什么,有没有去研究。

这一块我说了一下自己的思路,大致也还OK,我也没去深入研究怎么转换的,之前好像看过类似的文章,自己也只观察过转换之后的代码是啥样的,至于怎么转换的规则,真的没去深入观察。

4.git大型项目的团队合作,以及持续集成啥的。

这里我就说了一下自己了解的git flow方面的东西,因为没有实战经验,所以我就选择性说明了这一块的不熟练,然后面试官也没细问。

5.什么是函数柯里化?以及说一下JS的API有哪些应用到了函数柯里化的实现?

这个我就说了一下函数柯里化一些了解,以及在函数式编程的应用,最后说了一下JS中bind函数和数组的reduce方法用到了函数柯里化。

6.ES6的箭头函数this问题,以及拓展运算符。

这一块主要是API和概念的问题,扯了一些规范以及严格模式下其他情况this只想问题。

7.JS模块化Commonjs,UMD,CMD规范的了解,以及ES6的模块化跟其他几种的区别,以及出现的意义。

这个也是说了一下自己的理解和认知,自己对模块化历史以及一些规范都有所涉猎,这一块也还凑合。

8.说一下Vue实现双向数据绑定的原理,以及vue.js和react.js异同点,如果让你选框架,你怎么怎么权衡这两个框架,分析一下。

主要是发布订阅的设计模式,还有就是ES5的Object.defineProperty的getter和setter机制,然后顺便扯了一下Angular的脏检测,以及alvon.js最先用到这种方式。然后扯了一下vue.js和react.js异同点,权衡框架选择,调研分析之类,噼里啪啦说了一大堆。

9.我看你也写博客,说一下草稿的交互细节以及实现原理。

这一款就按照自己用过简书或者掘金,SG这类草稿的体验,详细说了一下,这个开放性问题,说到点基本就OK。

最后面试官问我有什么想问的吗,面试到这里基本就结束了,差不多面了一个小时,说过几天就会给答复,如果过了就会去阿里园区进行下一轮的技术面。

三轮技术面

上一轮发挥感觉没前两轮发挥好,所以还是有点不自信的,没想到第三天后,就来电话了,通知我去阿里园区面试。

因为阿里西溪园区距离我不到十公里,我就踩着共享单车一点钟就出发了,天气比较热,飘在路上,百感交集,身边一辆法拉利轰鸣而过,又一辆兰博基尼呼啸而过,我心里一万头草泥马奔腾,MLGB,心里暗想,为神马开这车的人不是此刻看文章的你?

走到半路了,面试官给我打电话了,说我怎么还没到,说约定的是两点钟,我一下子就懵逼了,短信只有一个游客访问ID,并没有通知我具体时间,反正不管谁的疏忽,我肯定是要迟到了,于是我快马加鞭,踩着贼难骑的共享单车,背着微风,一路狂奔,到阿里园区已是汗流浃背,油光满面,气喘乎乎。。。

面试迟到了,印象肯定不好,加上满头大汗的形象也不太好,加上自己饥渴难耐,这面是估计要GG了,一进来就直奔主题,这次是两个大Boss面试我。

第一个面试官

1.先自我介绍一下,说一下项目的技术栈,以及项目中遇到的一些问题啥的。

这个问题就是个开场白,简要说明一下,问题都不大,这个面试官就是第一次打电话给我面试的那个boss,所以技术那块boss心里也有个底细,所以没再问技术问题。

2.一个业务场景,面对产品不断迭代,以及需求的变动该怎么应对,具体技术方案实现。

具体业务场景,我就不一一描述,Boss在白板上画了一个大致的模块图,然后做了一些需求描述。
然后需求一层一层的改变,然后往下挖,主要是考察应对产品能力,以及对代码的可维护性和可拓展性这些考察,开放性问题,我觉得还考察一些沟通交流方面的能力,因为有些地方面试官故意说得很含糊,反正就是一个综合能力,以及对产品的理解,中间谈到怎么实现,也问到了一些具体的点,记得问到的有一下几个。

① 怎么获取一个元素到视图顶部的距离。
② getBoundingClientRect获取的top和offsetTop获取的top区别
③事件委托

第二个面试官

1.业务场景:比如说百度的一个服务不想让阿里使用,如果识别到是阿里的请求,然后跳转到404或者拒绝服务之类的?

主要是考察http协议头Referer,然后怎么判断是阿里的ip或者啥的,我也不太清楚。

2.二分查找的时间复杂度怎么求,是多少

。。。排序的还算清楚一点,查找真的不知所措,没回答上来,也没猜,意义不大,不会就是不会。

3.XSS是什么,攻击原理,怎么预防。

这个很简单,跨站脚本攻击XSS(cross site scripting),攻击类型主要有两种:反射型和存储型,简单说了一下如何防御:

①转义
②DOM解析白名单
③第三方库
④CSP

自己对

web
安全这块系统学习过,前前后后大约了解了很多,对于
XSS
,
CSRF
,
点击劫持
Cookie安全
HTTP窃听篡改
密码安全
SQL注入
社会工程学
都有一定了解,所以这个自然也不在话下。

4.线性顺序存储结构和链式存储结构有什么区别?以及优缺点。

我是类比JS数组和对象来回答的,反正还算凑合吧,自己都数据结构这块多少还是有些印象,所以入了前端,对数据结构和算法确实一直淡忘了。

5.分析一下移动端日历,PC端日历以及桌面日历的一些不同和需要注意的地方。

这个我能想到的大致都说了一遍,不同的场景交互和细节以及功能都有所偏差,以及功能的侧重都可能不同。

6.白板写代码,用最简洁的代码实现数组去重。

我写了两种实现方式:
ES6实现:

[...new Set([1,2,3,1,'a',1,'a'])]

ES5实现:

[1,2,3,1,'a',1,'a'].filter(function(ele,index,array){ return index===array.indexOf(ele) })

7.怎么实现草稿,多终端同步,以及冲突问题?

这个回答的不算好,本来也想到类比git的处理方式,但是说的时候往另外一个方面说了,导致与面试官想要的结果不一样。

最后说目前的工作经验达不到P6水平,业务类稍弱,阿里现在社招只要P6的高级工程师,但是可以以第二梯队进去,就是以第三方签署就业协议,一年后可以转正,就是俗称的外包。多少还是有点遗憾,面了四轮面了个外包,最后放弃这份工作了。

最后,感谢boss一直以来的关照和器重。

学习前端的同学们,欢迎加入前端学习交流群

前端学习交流QQ群:461593224

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机云开头的词语,云字开头的成语

以下是小编给大家整理的云字开头的成语的内容,欢迎大家查看。云程发轫:云程:青云万里的路程;发轫:启车行进,比喻事业的开端。旧时祝人前程远大的颂辞。云过天空:比喻事情已经过去,一切恢复平静。…

如果此表在它的 ChildRelation 集合中不是父表,则不能将关系添加到该集合中。...

今天遇到这个问题头都大了,百度上也没找到解决方案,就自己在哪里沉思。。。。。。。。。。。。。。。。 终于皇天不负有心人,被我解决了! 这是调用ChildRelations.Add(“名字”,“父级”,”子级…

dnf机器人猜数字奖励_DNF:周年庆策划啪啪打脸,工作人员也出错误,难道又是临时工的锅?...

本来应该是很喜庆的一天,结果又遇见了策划啪啪打脸的事情,关键还连累玩家提心吊胆的。往年都是登录游戏送豪礼,今年策划就像搞点不一样,估计是认为今年送的“即时”史诗比较多吧。然后就很任性的在领取豪礼之前添加了一道“礼物申…

Hadoop宿醉:使用Apache Whirr启动hadoop集群CDH4

这篇文章是关于如何在EC2实例上启动CDH4 MRv1或CDH4 Yarn集群的。 据说您可以在Whirr的帮助下在5分钟内启动一个集群! 当且仅当一切正常时,这才是正确的! 希望本文在这方面对您有所帮助。 所以,让我们划船... 下载Apache Whirr…

练习 3.16

如题:下面是某大学数据库的一组需求,此数据库用于记录学生的成绩,这与图1.2所示数据库类似,但并不完全相同。 a. 大学要记录每个学生的姓名、学号、社会保险号、当前地址与电话、永久地址与电话、出生日期、性别、年级&#xff08…

中国连计算机硬盘都无法生产吗,中国仍无能力制造出电脑中的硬盘

从最开始的40GB到现在的3TB甚至更大,硬盘技术已经发生了突飞猛进的发展,就连以往高高在上的SSD固态硬盘也从去年开始展现出大容量普及的趋势。但是,至今为止我们为何没有看到一款国产品牌的硬盘杀入市场呢?今日头条中一篇文章或许…

d3 i5 神舟精盾k480n_6款神舟精盾轻薄记本发布,10nm十代酷睿,匠心打造国潮好本...

神舟电脑新品:神舟精盾发布会已于2019年10月31日上午在深圳神舟电脑大厦招开,此次发布会一共发布了6款精盾系列的轻薄笔记本。 此次还有英特尔、英伟达、微软等重量级合作伙伴的大咖站台助力,神舟电脑产品总监王小陈先生、神舟电脑创新一部销…

《Java从入门到放弃》JavaSE篇:程序结构

程序的结构一般分为三种: 顺序结构。 选择结构。 循环结构。 一、顺序结构:这个不用多说吧,跟我们平时写文章的顺序一样,从上往下。 二、选择结构:从名字就能看出,要选择嘛,到底是要漂亮滴妹子…

css中border制作各种形状

css利用border制作各种形状的原理如图: 使用border绘制三角形是什么原理?事实上,宽度相等的border是以45度对接的,如下图: 没有了上border如图所示: 再设置border的宽度为0: 设置border的高度为0&#xff…

JPA和CMT –为什么捕获持久性异常不够?

使用CMT( 容器管理的事务 )进入EJB和JPA的世界非常舒适。 只需定义一些注释来划分事务边界即可(或使用默认值),仅此而已–无需摆弄手动开始,提交或回滚操作。 回滚事务的一种方法是从EJB的业务方法中引发非…

2016 linux发行版排行_选择困难症必看!云服务器如何选择操作系统,Windows和Linux哪个更好?...

在购买云服务器时,会有一个必选的配置,就是操作系统的选择,如何选择操作系统?操作系统选择错了怎么办?这是不少用户会遇到的问题,今天我们就来教大家如何选择操作系统,以及操作系统选择错了&…

spring取得通过配置文件和注解注入的bean、取得当前数据库连接、取得ApplicationContext的方法...

spring取得通过配置文件和注解注入的bean、取得当前数据库连接、取得ApplicationContext的方法 1、思路: 应用程序启动时使用ApplicationContextAware让Spring容器传递自己生成的ApplicationContext给我们, 然后我们把这个ApplicationContext设置成一个类…

怎样不通过高考进入清华计算机系,山东高考状元孟令昊澄清,没有参加政审,已经填报清华计算机系!...

原标题:山东高考状元孟令昊澄清,没有参加政审,已经填报清华计算机系!说到高考状元,其实每年在高考分数公布以后和志愿填报的时候,他们都是大家最为关注的群体,特别是对于这些状元的去向成为了很…

DOM BOM document window 区别

DOM 是为了操作文档出现的 API,document 是其的一个对象; BOM 是为了操作浏览器出现的 API,window 是其的一个对象。 使用下图讲解: 归DOM管的: E区:即document 归BOM管的: A区:浏览…

提取Java集合的元素-Java 8方法

我们所有人都广泛使用了Collection类&#xff0c;例如List&#xff0c;Map及其派生版本。 每次使用它们时&#xff0c;我们都必须遍历它们以找到某个元素或更新这些元素&#xff0c;或者找到匹配某个条件的不同元素。 考虑如下所示的人员列表&#xff1a; List<Person> …

D2

依托 Weex 的能力&#xff0c;轻舟平台使得前端开发人员可以基于 Vue 或者 Rax&#xff08;类 React&#xff09;开发媲美原生的 App。 不需要学习各类 Native 开发语言&#xff1b;不需要搭建复杂的编译打包环境&#xff0c;轻舟提供的一站式集成开发解决方案全部帮你搞定。吴…

hibernate5--主键生成策略

1、hibernate自己维护主键的值。首先获取该表中最大主键值&#xff0c;然后加一插入。主键字段对应的属性类型可以是int、short、long以及其封装类型。在高并发或者集群的情况下不能使用。 2、identity&#xff1a;使用数据库自身自增长来维护。 <id name"id" col…

vue watch 第一次不执行_Vue 实现前进刷新,后退不刷新的效果

https://github.com/woai3c/Front-end-articles​github.com需求一&#xff1a;在一个列表页中&#xff0c;第一次进入的时候&#xff0c;请求获取数据。点击某个列表项&#xff0c;跳到详情页&#xff0c;再从详情页后退回到列表页时&#xff0c;不刷新。也就是说从其他页面进…

win8计算机安全模式,安全模式,详细教您Win8怎么进入安全模式

电脑的用途在我们的日常生活之中体现的是最为突出了&#xff0c;比方说网上购物、看电视、玩游戏、做文件什么的都用得着电脑。但是有用户遇到了Win8系统按F8无法进入安全模式怎么办&#xff1f;非也&#xff0c;非也&#xff0c;下面&#xff0c;小编给大家带来了Win8进入安全…

元素加了position:absolute则该元素的text-align:center居中失效的解决办法

position:absolute;top:50%;left:50%;-webkit-transform: translate(-50%,-50%);-moz-transform: translate(-50%,-50%);transform:translate(-50%,-50%); 当元素变为position:absolute时&#xff0c;该元素不占据文档流&#xff0c;text-align&#xff1a;center失效&#xff…