京东前端二面,已过,准备hr面。
本来三点半的,牛油们都比我先面完二面,我就提前去了,大概两点半开始的吧,面了33分钟,至于为什么这么准,因为收到面试短信到出来,显示33分钟以前。哈。
一面面试官的部门,貌似是做内部可视化报表之类的吧。二面没有细问,应该是同一个部门。
1.首先是自我介绍,万年不变的学校专业,这次仔细介绍了一下实习的情况,讲了一下实习经历收获啥的。因为实习写的是一个偏静态的多css动画的网站,所以可能面试官也觉得没啥好问的额。
2.项目问不成,当然就问框架了。介绍了react,问了我react组件之间的通信问题,介绍了父子兄弟,通过props、context、发布订阅、redux的动作,派发,状态管理等。
3.接着就是react的虚拟dom怎么理解,主动介绍了react基于启发式的diff算法,使得原本O(n3)的算法达到O(n)的时间复杂度,在哪个生命周期(shouldcomponentupdate)进行性能优化等。
4.接下来没记错的问的是postMessage,这个很简单了,讲了讲参数,事件;又主动介绍了跨域,也就那些,面试官听完,仔细问了cors,这个一面就面过了,所以介绍的很清楚。
5.然后是闭包了,这本来是我觉得绝对不会出问题的地方,因为对闭包的理解,我很自信,从作用域,执行上下文讲起,来龙去脉讲的很清楚,结果面试官问我可以用来干什么,我讲了一下私有变量,通过闭包获取内部状态之类的;就在我以为面试官会问下个问题的时候,他一脸期待的看着我,我就懵逼了,说实话,还是平时场景太少了。懵逼完一般不是跳过这个问题吗?
6.接5,面试官一看不行啊,我的启发一下你,出了一道题,我觉得应该是他平时经常遇到的,题目是:有一个搜索框,用户假设要搜索的字符串“123”,但是为了体验友好,我们可以在用户输入“1”,“12”的时候在下面显示联想,这在我们平时使用的时候,是很平常的一个场景,那么现在有这样一个情况,如果“12”的结果早于“1”结果返回,这个时候我们怎么获知呢?其实在他讲到一半的时候,我根本没想到他是想问闭包,我第一反应是防抖和节流,像用户每输入一个字符我们设定一个5秒的延迟,如果用户接着在五秒内输入我们就重置定时器,直到用户输入完成。但是这显然不是面试官想要的需求。听完他的问题之后,我又想到,既然是顺序出错了,那就使用promise链式调用来确保顺序,但是我马上想到如果网络波动,请求“1”一直没有返回,那么肯定后面都假死了。我脑子一直在想回调,事件循环,异步之类的解决办法。结果最后面试官提示我使用闭包去解决,好吧。懵逼。前面已经懵逼够久了,一分钟之后,面试官叫我回来再想一下。好吧,那位大兄弟有思路回复一下。(9楼大兄弟大吉大利今晚吃鸡了,哈哈)
7.好吧,来讲讲缓存,这个本来在我的原计划是连着http,http2.0,https一起讲的,被上面弄懵逼了,就没有拓展。介绍了一下***-control/expires、Etag/last-modified,在把具体的在有缓存,但是过期的情况下如果根据本地的Etag/last-Modified发送请求报文,服务器根据请求报文的字段校验,决定返回200,还是304。
8.逃不过的http2.0,没想到我没有拓展,面试官也问了,讲了四个特点把:1.多路复用2.头部压缩3.二进制分帧4.服务器推送。我主要介绍了服务器推送,和h5的websocket一起介绍了,可以服务器主动推送资源给客户端,而不是让客户端保持轮询,浪费资源。然后面试官没想着放过我,问我二进制分帧具体是什么,哥,这个我真的没有了解,我说了一下二进制肯定比那啥垃圾http1.1/1.0好呀。哈哈
9.好了,又被问道linux熟悉吗?我说我大多时候在windows开发,上过linux安全这门课,应该介绍一下什么最小权限原则,如何给权限,创建访客客户,如何隔离的,可惜了自己也好久没用了,上完课就还给老师了。实在是没那个实际使用环境,也就无从说起,多说多错,不提也罢。
10.未来的职业规划,讲了一下吧,面试听了也没说啥。
11.做过可视化,(这是推断两个面试官是一个部门的根据),我讲了一下以前自己写的排序算法的可视化,记得比较清楚的js引擎计算的太快,而渲染引擎又不能阻塞js引擎导致最后渲染引擎出现直接闪现排序好的情况,但是解决的方案好像是吧每一遍的状态保存下来存到数组里,然后用setinterval定时循环。后来看《深入浅出nodejs》的时候看到有一个异步模块通过使用eval来阻塞js引擎好像,不知道现在该如何做。有没有比较好的方法。面试官听了没做回应,也没有继续深入。
12.你想问我点什么?面试官如是说到。我问他前端发展方向?好吧,挺尬的。哈哈
终结一下:面完感觉还行,全程都在掌握中,除了闭包那题,和介绍一下二进制分帧。然后他们部门不是做内部可视化的吗?我说了不像研究h5的canvans和css不知道,他会不会锤我。
恰好在写这篇面经的时候,收到短信,9.20号,北京泰富酒店。为什么我一直都在下午三点,,,,,,,,,,,,,,,,,,,,,
#京东##前端工程师##秋招##面经#