前端面试题
1、遍历数组,for 和 forEach 哪个快?
时间复杂度都是O(n)
但是for比forEach更快一些
forEach 每次都要创建一个函数来调用,而for不会创建函数
函数需要独立的作用域,会有额外的开销
除去性能考虑,forEach 代码可读性更好
2、vue生命周期
(1)beforeCreate
- 创建一个空白的Vue实例
- data method 尚未被初始化,不可使用
(2)create - Vue实例初始化完成,完成响应式绑定
- data method 都已经初始化完成,可调用
- 尚未开始渲染模板beforeMount
- 编译模板,调用render 生成vdom
- 还没有开始渲染DOM
(3)mounted - 完成DOM渲染
- 组件创建完成
- 开始由“创建阶段”进入“运行阶段”
(4)beforeUpdate - data发生变化之后
- 准备更新DOM(尚未更新DOM)
(5)updated - data发生变化,且DOM更新完成
- (不要在updated中修改data,可能会导致死循环)
(6)beforeUnmount - 组件进入销毁阶段(尚未销毁,可正常使用)
- 可移除、解绑一些全局事件、自定义事件
(7)unmounted - 组件被销毁了
- 所有子组件也都被销毁了
补充说明——keep-alive组件 - onActivated缓存组件被激活
- onDeactivated缓存组件被隐藏