前言
最近在看一些面经,去看看别人面试遇到的题目,然后每看一篇面经就整理一次题目及答案。(之后大概率会持续更新)
关于本文
本文是因为最近投了个滴滴的前端实习岗位,所以在牛客查了查有关滴滴的面经,于是乎看到这个 滴滴sp前端一面 ,整理了一下关于里面题目的答案。当然啦,如果哪里讲得不好的或是讲错的,还是希望大家评论纠正一下我的错误。(涉及到React的题目暂时不讲解,作者时间安排还没学React>_<)
滴滴sp一面题目及解答
1. 手写发布订阅模式
直接第一题我就懵了,想不明白直接到掘金查了查发布订阅模式,原来是有关设计模式的知识。这一块的知识缺了,那就补,因为我还没搞懂这里暂且就不详解了。
2. Vue的双向绑定原理
Vue.js是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter、getter,在数据变动时发布消息给订阅者,触发相应的监听回调。
- ① 实现数据监听器Observer,能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知订阅者
- ② 实现一个指令解析器Compile
- ③ 实现一个Watcher,作为Observer 和 Compile 的桥梁,能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数,从而更新视图
- ④ Mvvm入口函数,整合以上三者
3. Vue和React的区别
相同点:
- ① 都使用Virtural Dom
- ② 都使用组件化思想,流程基本一致
- ③ 都有成熟的社区,都支持服务端渲染
不同点:
- ① 组件通信不同
- ② 模板渲染方式不同
- ③ Diff算法不同
- ④ 事件机制不同
- ⑤ 监听数据变化的实现原理不同
(