之前在牛客看过挺多面经,现在也回忆一下自己面阿里的面试经历,回馈一下大家。有些地方记不太清楚了还请见谅。
我个人感觉阿里相比起腾讯美团百度字节这些公司而言,面试更偏重项目一些,基础问的挺少的(可惜我的八股能力发挥不出来了)。如何把自己做的项目讲好,讲出亮点和思考的地方,应该是一个比较重要的问题。
一面 (1h)
起手常规自我介绍
提到了一些项目,详细讲讲项目
介绍一下常见的hooks(useState、useEffect等)
能详细讲讲useState么(React官网上的内容)
详细讲一下useEffect(与生命周期的对应与不同、传入一个数组实现对useEffect的跳过)
项目中使用了Redux,介绍一下
如果你来实现redux,该如何做,原理是什么
这儿我是按flux架构介绍的,dispacher、store、action、view
如果要实现跨层次传递(这儿我不记得具体如何问的了),如何解决(我回答的是react-redux的connect方法,看面试官反馈应该是对的)
项目使用了服务端渲染,介绍一下服务端渲染
提到了hydrate和renderToString,你知道他们底层是如何实现的么(没答上来)
Promise知道吧,简单讲讲如何实现promise(讲了简单的实现方式)
如果先绑定then,在发生状态变化需要处理,咋办(当时对node了解不多,没答出来?不太记得了,也可能回答了事件机制。不过没有讲详细)
react使用过的话,Ref讲一下(讲了Ref和useRef、useImperativeHandle)
Ref除了DOM操作,还有其他作用么(当时没反应过来,回答的是一般只是用来进行DOM操作。其实还可以用来操纵React组件实例,但当时脑子没转过来)
介绍一下常见的HTTP状态码(304、404这些)
Diff了解么,讲一下(讲了一下react16前的diff和引入了fiber后的diff实现上的变化)
有什么想问的(问了一下技术栈和建议,面试官建议可以多了解一些简单的开源内容的底层设计,还有nodejs值得学习。目前已经在学习nodejs啦)
二面 (40min)
常规自我介绍
项目介绍(这儿给面试官讲的比较详细,中途也有一些小问题,主要是围绕项目的技术选择上的,大约25min)
场景题:一个父元素中不断有div被加入,如何给这些div绑定事件。
我当时问了下面试官,在父元素上绑定事件可行么,面试官说不可以,考虑存在其他子元素内容。后边不知道为啥我下意识地排除了事件代理的方式(父元素绑定事件,用e.target查看触发事件的子元素是不是div即可)😂
然后我说可以用一个set存储div引用列表(可以通过dom.querySelectorAll('div')来得到引用的伪数组,当时面试官询问确定了使用哪个函数,估计是为了确认是否用过吧?),不进行重复绑定。当然这个方法比较差,面试官问是不是有更好的。
当时想了会儿,好像没啥更好的呀,事件代理被ban了(自动排除,可以说是思想钢印了,主要自己还注意不到这个排除过程)。我又想了下,面试官提到div是不断被加入的同样的div,那么他们的大小一致,位置是存在一定关系的。可以根据前几个div来得到后续div中内部位置满足的一个计算公式。因为要绑定的也是点击事件,在父元素上绑定点击,然后点击事件触发根据触发的位置套公式判断是否满足条件(这方法确实挺怪🤣,当时打电话一直想又怕被挂)。面试官可能没太听懂,或者听懂了感到无语了😂,让再想想。
我只能承认一时半会想不到了,面试官说用事件绑定,e.target来做😂
反问环节,问了下面试官的建议,他建议是相对缺乏真实项目经验(之前没有实习过),多实践补充一下
三面 (35min,应该是总监面)
原以为三面会很难,但大佬人很温和,还帮忙给了一些建议,体验很棒
日常自我介绍
项目挑一个自己觉得比较好的介绍
研究生阶段跟导师研究内容
研究生阶段应该有课吧, 你觉得你什么课学的比较好(当时说了软件工程,但觉得好像这个不太好,补充了编译原理。给面试官讲了下Java和JS的编译过程区别)
反问环节
我这儿想了想,难得遇到大佬,问他的是希望他能给我一点建议,技术非技术都ok。没想到大佬人特别好,给了不少建议,既有技术上的,也有非技术的一些人生上的建议。很感谢大佬的建议。
HR面 (40min)
日常自我介绍
项目经历讲讲
读研期间跟导师做了什么
为什么不继续做研究方向的工作,而是选择了前端
是如何学习前端知识的
在实验室和学校,有没有一些实践经历 (本科暑假到过阿里参加校企活动,参观阿里)
在实验室负责什么工作 (研究,以及带本科生学弟学妹)
带学弟学妹感觉他们最大的通病是什么
对研究领域不熟悉,无法进入状态,很难确认自己研究得内容有什么用(因为我们研究方向比较偏理论,做计算机网络协议设计)。写领域综述帮助他们了解,整理相关代码和论文一块给他们作为入门文档
主要是负责学弟学妹的入门辅导么
不全是,因为实验室人其实不多,研究方面也会继续带着他们,有时候也会帮助他们一些学习和工作上的事情,比如教他们使用latex、做毕设如何查找论文、图书馆资源使用等。
算是实验室师兄的角色?不过我个人可以算是“好为人师”吧,有时会主动给他们分享一些知识,也不知道他们烦不烦🤣
提到拿到过腾讯字节等一些其他公司的offer,为什么选择阿里
这个原因就挺复杂了,包括技术栈呀,从事业务呀,部门选择之类的,就不详述啦
你觉得当前部门有什么吸引你的地方,你为什么投递淘系
我个人是因为学习的时候关注了淘系前端团队公众号,对淘系本身就感兴趣。然后希望学习一些底层的前端知识,还有node开发也希望了解。当前我投的部门在这方面是比较吻合的
你的职业规划是什么
这个大家根据自身情况回答即可,我自己大致来讲是计划深入学习react和js的底层知识,以及学习node,了解一下一些serverless等行业前沿,篇幅有限就不详述啦
你的实习时间
反问环节
实习生培养(师兄制度,入职的话会有专门的项目培训,实习就没了)
hr面感觉很好,没有像想象中的有压力。面试官很温和亲切,问的问题也都是很柔和的,不会问很刁钻的问题。
总结
综合来说,阿里的面试体验挺好,效率很高,整体大概一星期多一些(这儿要感谢我的内推人大大,帮忙催了很多次,每次面完都会帮我查看一下是否通过并告知我,非常感谢)。重项目,对于js和浏览器基础问的相对少些
全部评论
(9) 回帖