1. 上次实习中学到了什么(技术方面和生活方面:主要问了生活方面,面试官可能注重性格)
2. Vue2.0和Vue3.0的数据响应式原理,聊了Object.defineproperty和Proxy的响应式,Proxy的响应式相对于Object.defineproperty有哪些好处
只聊了原生递归对象,性能方面和Obeserver数据劫持的优缺点(劫持后不需要递归整个对象设置descriptor)
3. Vue和React你在使用过程中感受出来的区别,简单聊一聊
聊了React和Vue的设计理念,说了说便捷性和灵活性问题和为什么数据劫持在React中不能使用
4. React的数据响应式原理了解过吗(不怎么会,没答)
5. Vue2.0的监听可以监听对象和数组吗(不可以),因为js的Object.defineproperty的局限性
6. 那么如何判断一个数组类型呢
答了俩个方式,漏了一个:
isArray(ES5)
判断对象的constructor是不是指向Array
应该还有一个是用toString()=== 【Object Array】,这就是isArray的原理,面试官应该想让我答这个
7. 回到第五题: 那么Proxy可以监听Object和Array吗
这是面试官在引导我第二题的答案,答出来了:Proxy相对Object.defineproperty监听层次更深,因为Proxy在更高纬度进行了拦截
8. 了解虚拟DOM吗
了解一点,讲了以下什么是虚拟DOM,AST语法树转换,以及从上面讲的React设计理念分析了Vue和React的diff算法的渲染颗粒度,Vue比React的diff更加精准(因为Vue是数据拦截,React设计遵循不修改对象属性的设计理念,所以不能精准的知道用户修改了哪里的属性)
9. 那diff算法是如何进行DOM比对的,怎么判断修改了DOM
用key值比较
接着又问了如果没有key,如何去比较(没答好,我说是按照虚拟DOM对象的第三个属性Attr进行比对的,不太懂)
10. 接着上个问题,如果key值用了数组的索引index,会发生什么不可预期的行为(之前看过,忘记了)
11. 跨域的六种方式。如果我要上传一张图片,你会选择哪种方式,为什么(为什么答的不好,我随便选了一种:图像Ping)
12. 问了我博客的接口设计
13. MongoDB和Mysql,关系型数据库和非关系型数据库的区别,我的博客为什么选择MongoDB
14. js如何并发的发送请求
除了Promise.all,如果用async怎么实现
总结:后面答的不好。底层逻辑了解还是不够清楚,基础需要加固,业务问题不是很好
全部评论
(5) 回帖