赞
踩
周三下午去面试企查查来着,base苏州2.5园区5栋5层。
面试官感觉挺不错的,问了不少问题,我不会的问题也会跟我解释下,这一点挺好的。
面试官说项目组是做大数据这一块的,所以会先问一些跟大的数据量处理相关问题。
问题1.如何做一个组件,复制粘贴json,支持格式化美观的展示json,并且支持再编辑。或者说下,如何做一个类似腾讯在线文档那样的项目,说一说自己的想法?
这个问题有点懵,我说做项目的时候会写一些基础的组件,然后知道怎么把组件库prepublish发布到npm上。然后这个问题就过去了。这个时候我已经有点紧张了,那天天气也热,我在小的面试透明玻璃会议室里,穿着短膀子。
问题2.我们做大数据的,每天都会有上亿的数据量要处理,假设现在有100万条数据,如何展示在界面上?
我马上回答,用分页来做啊。或者将数据放在localstorage里面,结合分页去里面拿数据展示,前提是这100万条数据不超过5M的localstorage限制。然后他问,除了这个方案,还能怎么做?我没有想起来用虚拟列表来做。
问题3.之前客户反馈,有个页面经过一些操作,可能会出现内存溢出页面崩溃的现象。请问怎么去定位这个问题?(他说当时有个这种问题他们定位了1个月才解决)
我说内存溢出,一般就是写了自定义事件,在组件销毁时未清除。除了这个还有哪些场景呢,我回答不上来了。全局变量,全局函数,定时器(setTimeout,setInterval),包括vue的v-if频繁使用,都可能引起内存溢出。除了自己肉眼查看,可以通过开发者工具的performance去验证内存的使用情况,如果内存一直在增加,就说明这里有内存溢出了。这个问题我想起了之前在华为车载网络上位机遇到一个类似问题,当时也是验了一个多月没解决,是不是可以通过performance来解决呢。
问题4.考下数据结构和算法相关知识,说下斐波那契数列的实现吧?
说实话,这个算法题我看了不下5遍,2种方法实现,一种是递归函数去实现f(n) = f(n-1) + f(n-2),一种是动态规划(1.把一个大问题拆分成多个小问题,逐级向下拆解 2.用递归的思路去分析问题,再用循环的方法来实现)。但是最后我只回答出来递归函数,并且我也说了,递归函数在时间复杂度上不合适,不能这个做。人家又问我怎么做呢,我回答不出来。这种问题是最气人的,明明可以拿分的,最后给搞砸了。后来又问了什么是动态规划,也没回答出来。所以还是自己的基础知识不扎实。
问题5.那我们来问下vue相关的问题吧,我们现在还是在用vue2,3的问题就不问了。说下vue2的diff算法。
基本的那些点我都说了,比如同级比较,tag不同则删掉重建,子节点通过key区分。但是说的还是不够全面,比如问到diff算法的比较的特点,我就没说出来,vue2里是双端比较,vue3是最长递增子序列,react则是向右移动对比,这就diff算法的知识广度。
问题6.说一说虚拟dom
这个问题也是回答的不够全面,基础的就不说了。在连环问环节,问到dom操作和虚拟dom哪个更快,我说虚拟dom更快。其实不是虚拟dom更快,dom操作更快。比如说jquery直接去操作dom,当然比虚拟dom更新快。首先需要监听data变化,再生成vnode,进行diff算法获得差异部分,再进行dom更新。
但是为了数据驱动视图,为了直接找到需要更新dom的范围,不像jquery操作dom,涉及回流重排重绘,如果有10个节点的话,需要挨个再更新一遍,但其实里面只有1处节点变化。
其他的会的问题就不记录了,前前后后面试了1个多小时,整个面试过程压力很大,会的知识了解不够深入,不会的更是回答不出来。
转行真的需要勇气,以前我有,能从一个学艺术设计的,转成做前端开发,因为我热爱。
现在的我更需要勇气,当前工作大环境很难,找工作前所未有的难,对于前端开发来说真的难。
所有公司都希望你会vue和react,vue是我的拿手技术栈,react则是在上家公司上手做了2个项目;
小公司想要你会uniapp,为了省钱做多个平台的项目;
webpack也要会些,虽然以前基本项目里没有特殊的要求,对webpack进行配置;
想去大厂,你得准备好数据结构和算法,多刷题,对设计模式有所了解;还有你的学历人家是否接受;
甚至之前去万得面试,直接一道迷宫编程题,久久不知如何下手。我记住了它,抽空要去实现它。
面试官厉害点的,会经常问,某个组件怎么去设计实现。你是否知道怎么发布UI组件库。
Typescript你是否已经在项目里用起来;代码单元模块测试,你是否已经做起来;
曾经我有机会转华为OD,但是我厌恶那种卷的氛围没有转,直到现在我有些后悔,至少可能还有内部调岗的机会。
现在要做的就是多投简历寻求机会,另外想想以后的出路和方向。加油吧,少年!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。