虾皮提前批前端 北京一面二面面经
已约hr面,过来还愿。
凭感觉回忆面经,可能有遗漏
一面:40min
- 自我介绍
- vue响应式原理,这题我喜欢数据劫持+编译模板+依赖收集一起说。
- 快排,我说完左边比flag小,右边比flag大后,再对左边和右边递归。面试官反复问我确定是i>=j的时候终止判断么,我没太get到点就提出现场手写一个,面试官说不用。
- 不用递归实现前序遍历二叉树(不会)LeetCode有题解,准备过的话还是挺简单的
- css盒模型,面试官问border-box包含什么,我说border-box的content区域是content+padding+border,他说要问border-box盒模型包含什么,不太懂就过了。
- BFC是什么,八股文吧,针对margin重叠详细问了,同一个BFC内部margin重叠,不同BFC不会。
- EventLoop,我说浏览器是先同步代码,异步回调会放入队列,每轮先执行一个宏任务然后清空微任务,然后浏览器判断是否渲染。面试官说不对,Node的是6个阶段,面试官说node的对了。
- Object.__proto__是什么(Function.prototype),Function.__proto__呢(还是Function.prototype,他们都是构造函数嘛),终于看见面试官比较满意的点头了。
- 算法题,寻找两个数组中不重复的元素
-
[1,2,2,3] [1,3,4,5] 返回[2,4,5] 一开始想的比较直观是用遍历arr1 indexOf(arr2),如果没有就添加进集合,倒过来再对arr2做一遍 复杂度是o(m*n) 面试官问有没有o(n) 运气比较好,一下子脑子就转过来了,说先arr1全添加进集合,遍历arr2,如果重复就删除,不重复 再添加
过去一周了,可能漏了几个题,答的不太好或者印象比较深的应该就是这些,面试官比较严肃和正经,但人还是挺好的(这不给我过了嘛O(∩_∩)O),反问环节也对工作环境,部门技术栈,对我的建议说的比较细。面试体验还是很好的。
二面:(60min)
- 自我介绍
- 一上来就3个看题说输出,有一大段代码,还得理逻辑,弄得我很紧张。而且面试结束后房间直接消失了,没有把题目保存下来。。。 第一个是闭包输出,alert是输出字符串的,大概就这个点,第二题是原型的,我答错了,面试官说回去再看看。第三个宏微任任务务输出的,微任务是async,await这种的,我感觉我顺序说对了,async,await我说是语法糖,我跟他转换成Promise和.then说的输出,我后来自己测感觉顺序也说多了,面试官对我async,await说得不太满意
- Vue响应式原理,同上。
- 组件什么时候会更新,我说初次加载,data变动,props变动。
- 如果这个data在template里没有用到还会更新吗。 不会,因为我刚才说响应式提到编译模板了,编译模板没解析到就不会有依赖收集的过程,是不会触发更新的。
- mounted里修改data,然后访问dom值是旧值还是新值,旧值,vue是异步更新的,nexttick
- nexttick你会怎么实现,我说是微任务,Promise,mutationObserve这种,都没有就settimeout(0)吧
- settimeout(0)一定会在0秒后执行吗(我感觉这个问题就很奇怪。。。要是3秒后感觉还挺晕人的,这个0摆明了是有坑啊)不会的,只是在0秒后把回调放入宏任务队列,还是要根据执行情况再去执行他的
- http缓存,强缓存,协商缓存,if-modified-since和if-none-match怎么用也说了,这种题感觉别等面试官问,知道就多说点。
- 问为什么有了last-modified还有E-tag
- 百度给谷歌发请求能发生成功吗,怎么解决跨域
- 百度给谷歌发请求会带cookie吗,我说了cookie 里的sameSite字段,none,Lax,strict
- 现在浏览器默认什么(我刚好在mdn文档上看过,以前是none,现代浏览器逐步趋近成Lax了)
- 如何带上cookie呢,一开始没答出来,反问环节面试官说就是cors里的一个字段,我想起来就立马答了,access-control-allow-Credentials
- 渲染2万条数据怎么弄,我说GPU加速,他说是内存层面,我面试没想出来,第二天早上想到一个。。感觉就可以用computed属性计算可视化区域内的,只展示这些就行了。面试的时候不太敢说,感觉可以再放开点的。
- 之前提到GPU加速,怎么弄,原理?给所有节点都GPU加速不行吗?不行,我答了个渲染层提升为合成层里层压缩和层爆炸的概念,好像算过了。
- 如果把所有的v-if都改成v-show会怎么样,我很懵。。面试官问你自己没试过么,我说没
- vue里key属性是做什么的,绑index行不行? 掘金上看的diff原理,挺详细的说的
不复盘不知道。。一看二面原来问了这么多问题。而且还是凭记忆回想的,可能还漏了几个,当天我感觉答的挺一般的,好几个题没答上来,现在综合一看好像答上来的也不少。。感觉还是要多注重原理,然后问到你会的时候就多说点,把原理说出来。二面面试官非常和蔼,是深圳的,我问工作环境他笑着说你投北京的我深圳的说了也没啥参考价值hhh, 二面无算法。