用友的前端面试给我的感觉是还可以,面试我的只有一个人,技术还可以,问的问题也算是循序渐进吧。
- 说说你了解的算法,算法:全排列算法怎么实现
- 数据结构知道哪些,知道链表吗?链表的优缺点。
- vue2和vue3的区别,vue3的数据拦截是如何实现的?
- vue2的数据拦截有哪些问题?你了解vue.set吗?
- promise 情景题 100个http请求,用promise每次只能处理5个请求,如果在处理的过程中,只要一个完成就进行下一个,该如何实现?
- promise的写法其实也并不是很完美,目前es7又给了一种新的解决方案,是async 和await,他们内部是如何实现的?
- 你在工作中使用过哪些设计模式?我说用过发布订阅模式以及观察者模式,他问,这两种模式有什么区别。以及发布订阅模式是如何实现的?观察者模式是由哪几部分组成的?
- es6中数组有那些api,for…in 和for …of的区别?for in 遍历的是什么?–key
- for…of遍历的是什么?–value for of 可以遍历对象吗?for in呢?
- 你用过或者学习过react吗?
- 说说js的原型链
- 说说浏览器页面的渲染过程?
- js中new方法的内部实现主要是分为那几步?
- 在构造函数中,如果return 一个普通类型的值,那么new之后是什么?
- 如果在构造函数中,return一个对象类型的值,那会不会影响new之后的结果。
- vue的双向数据绑定是如何实现的?有什么问题?
- computed和watch的区别?
- 是否知道dom漂移?dom元素漂移是因为resize或者是改变样式导致的,也就是我们说的重绘。
- js的继承有哪几种方式? 构造函数 原型链 混合 实例继承 object.create()
answer
-
Object.create
object.create方法创建一个新的对象,使用现有的对象来提供新创建的对象的__proto__ -
vue.set是用来解决什么问题的?
vue.set可以响应式的新增或修改数据, -
生成器
生成器不同与普通函数,是可以暂停的,其实整个generater函数就是一个封装的异步任务,或者说是异步任务的容器,异步操作需要暂停的地方,都用yield语句注明。
执行不会返回结果,返回的是一个内部指针对象, -
数组的不同的遍历方法的区别
如果数组中存在空元素,采用for…of会遍历空元素, -
vue2中双向数据绑定的缺点
无法监听大对象属性的动态添加和删除
无法坚挺到数组下标和length的变化
为了解决这个问题,vue2为我们提供了$get $set $delete来弥补不足。