滴滴一面
滴滴一面面经
1.介绍下你自己(面试官很好,还先介绍了他自己)
2.介绍下你的项目
3.说一下你的项目中遇到的困难?怎么解决的
4.vue双向绑定原理?说了下对数对象的劫持和双向绑定原理,说了下使用Object.defineProperty监听数组有哪些问题,说了下对数组采用怎么样的解决方式,重写7中数组方法的原理
5.vueRouter实现原理,两种路由模式的原理?监听什么事件?
6.vuex实现方式
7.组件之间通信的方式?说了5中,说下vuex和eventbus?
8.说下开发时环境和运行时环境?有什么区别?部署的时候是怎样的?
9.执行npm run dev 打包的时候没有生成打包文件dist,他的打包原理是什么?(不知道)
10.webpack热更新原理
11.用过ES6哪些新特新?let、const、箭头函数、proxy、reflect、Generator、Symbol、Promise、数组新方法、BigInt
12.promise状态?promise回调then再then返回的是同一个对象吗?
13.说下async 和await原理, 说了下Generator函数用法和co,以及实现原理
function newInstanceof(left, right) { let proto = left.__proto__ let prototype = right.prototype while (true) { if (prototype === proto) return true if (proto === null) return false proto = proto.__proto__ } }
function _new(fn, ...args) { const obj = Object.create(fn.prototype) const newObj = fn.call(obj, ...args) return newObj instanceof Object ? newObj : obj }
17.刷过算法吗?我说刷过,力扣刷的多吗?我说不多,差不多100道。他说那也不少,我说我以前刷洛谷,他说他那个年代只有力扣,我说力扣那么老吗?(忽然意识到再变相说面试官老,急忙说我是说力扣那时候就出名了吗)
了解动态规划和贪心吗?有啥区别?
我讲了下贪心和规划,结合载人和背包问题、以及零钱兑换的问题,推动态规划方程(没具体讲怎么推的)
来做个题?放心,不是动规,给一个数组,返回数组的最小k个数
function getK(arr, k) { return arr.sort((a, b) => a - b).slice(0, k) }
问了时间复杂度,我简单说了sort底层原理,时间复杂度nlogn - n^2
nlogn怎么来的?
18.补充:说下跨域,跨域的解决方式?(说了四种)