当前位置: 首页 > 后端技术 > Node.js

前端面试分享:两年社招经验-阿里巴巴

时间:2023-04-03 17:12:48 Node.js

作者有两年的经验。第一个是小公司,第二个是二线互联网公司。他们每人待了一年...有机会在阿里面试,真是惊喜!先跟大家分享一下我的面试经历吧。。。电话面试。因为我还在工作,电话面试是晚上8点开始,大概半个小时。一开始很紧张,声音有点颤抖==!简单的自我介绍,做过什么项目,用过哪些技术栈?这个没什么好说的,因人而异,不熟悉的技术不要吹嘘,免得深问的时候答不上来,你是怎么看待front的选择的——结束框架?我比较熟悉vue和react。提到了这两个框架的优缺点和性能对比,还有上手难度、社区生态、团队成员、招募难度啊blabla……vue是如何实现双向绑定的?Object.defineProperty()这个方法跟踪依赖关系并完成UI更新。什么是反应virtualDOM?如何实施?告诉我差异算法?网上关于vm的资料很多,实现其实只是解析JSX->AST语法树。diff算法主要讲的是react如何能够将O(n3)算法降低到O(n)级别工作的最佳点,以及如何解决你最头疼的问题?好在你提前做好了准备,现场想想肯定黄了……(捂脸)平时怎么学习,最近又学到了什么新知识?什么github,各种论坛书。。。结束后面试官也没告诉我结果,让我等通知,然后挂了电话一分钟。给...第二天让我去办公室面试!(效率蛮高的)...技术面的面试官很亲切有礼貌,让我放松了很多。简单的自我介绍,介绍一下你的项目,技术栈?react和vue的比较?反应差异算法?和电话面试的前三个问题基本一样。从你的回答来看,面试官是来找问题的。可能我的回答相似度高,问题和旁观者相似。模式实施?实际上,我并没有看到很多设计模式。刚才讲了大概的思路。http报文的头部有哪些字段?什么意思?常说面试官不会让你解释移动高清解决方案是怎么解决的?卡在这里,没看懂rem布局+多图+1px的问题,只说了flexible。js,又讲了原理,现在回过头来看,我说的还是有问题。。。时间久了,忘了webpack的原理,loader和plugins是干什么的?你自己写的吗?总的来说,webpack分析模块,loader和plugin的作用,我没有亲手写过,看过一些代码。。。简单描述一下从输入url到显示网页的过程中发生了什么?还是比较粗糙,但是重点是DNS解析,三次握手,数据请求,浏览器如何解析DOM树,css树应该都会提到,还有多进程多线程的架构浏览器,js线程与渲染线程互斥详解:我的项??目中,有一套代码实现PCh5兼容,组件耦合严重,请问有什么好的解决办法吗?只想着把数据层抽象出来,其他的不知道怎么解决。。。现在不知道-。-SSR和客户端渲染有什么区别区别,vue是怎么实现绑定事件的?简单描述下服务端渲染的过程,最后生成一个HTML文件,还有一个flag让框架知道已经被服务端渲染了,而store中的数据一般会挂在Underwindow中。__inialState__...vue绑定事件的实现,不太明白考官什么意思,简单介绍一下vue是如何以声明的方式写事件绑定代码,实现订阅发布的模式,为DOM做了很多nativeevents做了一层封装,所以……不知道我说的对不对。简述容灾在公司节点架构中的实现?因为我提到这个,所以回答的很模糊,估计漏洞很多。。。其实应该是cdnslb节点三层容灾浏览器事件的流程是什么?为什么它通常在冒泡阶段而不是捕获阶段注册?addEventListener的参数是什么?回答后发现IE8以下可能没有捕获阶段,可能冒泡更符合控制事件影响的一般习惯。如何实现面向对象?如何处理需要重用的变量?ES5构造函数+原型ES6类复用的变量放在构造函数原型上,移动端延迟300ms的原因?如何处理?移动端双击设置会导致300ms的系统判断延迟。fastclick,或者touchEnd代替主流框架的datasheetdirection/two-waybinding的实现原理?vuedefineProperty(),reactsetState()DOMdiff,SubscriptionandPublishingMode展开再说吧。简述转行经历,如何学习?作者入坑前,做了两年架构设计……所以我大概说说这段辛酸的历史吧(捂脸)你觉得你在前端工作最大的优势是什么?以实际工作为例?这里其实很尴尬,我小题大做了。被问到细节的时候,想不出实际工作的例子。。。面试官看我很尴尬,就换话题=。=最后闲聊了一会,询问了一下队伍情况,换了一个人继续双面技术。O(n)复杂度而不是O(n^3)http代码?200、302、304等移动端如何实现rem布局?简述原理?网上有很多。简单的说,rem可以控制html的字体大小,以统一为基准,其他rem宽度可以相应调整。只需要做html根字体与移动端宽度的相关性计算即可。刚刚讲了一些注入webview执行代码的schema和native方法,ios使用iframe来传达Rollup和webpack的区别,什么是treeshaking?为什么TCP三次握手的过程可以实现,getpost请求的区别?静态文件的浏览器缓存如何实现呢?其实就是调查http相关的缓存,回答cache-controlexpiresEtag304,浏览器如何识别同一个文件等?这些字段是什么意思?js有哪些数据类型?如何判断?null和undefined在应用场景中有什么区别?基本类型和复杂类型,typeofinstanceofObject.prototype.toString第二个答案出来了,平时工作很少注意到newString('是a')和'a'一样吗?一个是字符串对象,一个是基本类型白屏时间太长?雅虎军规,还有一些其他的移动优化,还有离线包或者serviceworker之类的,我也趁机问了团队采用的是哪种方案,也是离线包ES6生成器函数简单描述数组去重的实现?网上有很多,据说newSet([...array])循环遍历indexOf最快如何解决对象键值对方法js浮点计算不准确?这真的不可能。回过头来就会知道工作中最值得骄傲和突出的一点,最头疼的一点,如何解决问题,为什么要跳槽?哈哈,答案---大长梦~我们说了阿里的压力。据说文化和技术这三个方面都是p8老大。我们见面的时候我不知道。我们谈话的时候已经很晚了。没有以前那么紧张了,连连放松了很多。前端工程实践转行后如何自学前端?学习路径中的代码DOM、添加元素、删除元素等基本知识你有没有掌握?DOM节点的类型就是给自己挖坑。我提过。。。结果好久没看,忘记怎么用正则表达式匹配url了。正则表达式的作用是什么?我平时会写很多正则表达式,同事也经常找我帮忙写正则表达式。这不是问题。Move端到端的优化方法?离线包是如何实现的?最后聊了聊项目和现在的公司最后告诉我技术面试通过了(很爽~),稍后HR会来面试我。P6rating还在最后阶段,还在等offer,祝我一切顺利!^-^