面试题复盘

本文深入探讨了Promise的静态方法,包括Promise.resolve()、Promise.reject()、Promise.all()和Promise.race()的工作原理。接着,解释了闭包的概念及其在延长作用域和管理内存中的作用,特别是在计时器函数中的应用。此外,文章还介绍了Vue组件的生命周期顺序,以及v-bind修饰符的使用。最后,讨论了key在Vue中优化虚拟DOM更新的重要性。
摘要由CSDN通过智能技术生成

1.promise的静态方法和原理:

静态方法有四种:

1.Promise.resolve()

此方法有一个可选的参数,参数的类型会影响它的返回值,具体可分为三种情况(如下所列),其中有两种情况会创建一个新的已处理的Promise实例,还有一种情况会返回这个参数。

(1)当参数为空或非thenable时,返回一个新的状态为fulfilled的Promise。

(2)当参数为thenable时,返回一个新的Promise,而它的状态由自身的then()方法控制,具体细节已在之前的thenable一节做过说明。

(3)当参数为Promise时,将不做修改,直接返回这个Promise。

2.Promise.reject()

  此方法能接收一个参数,表示拒绝理由,它的返回值是一个新的已拒绝的Promise实例。与Promise.resolve()不同,Promise.reject()中所有类型的参数都会原封不动的传递给后续的已拒绝的回调函数

3.Promise.all()

此方法和接下来要讲解的Promise.race()都可用来监控多个Promise,当它们的状态发生变化时,这两个方法会给出不同的处理方式。

 (1)当可迭代对象中的所有成员都是已完成的Promise时,新的Promise的状态为fulfilled。而各个成员的决议结果会组成一个数组,传递给后续的已完成的回调函数

(2)当可迭代对象中的成员有一个是已拒绝的Promise时,新的Promise的状态为rejected。并且只会处理到这个已拒绝的成员,接下来的成员都会被忽略,其决议结果会传递给后续的已拒绝的回调函数

4.Promise.race()

(1)能接收一个可迭代对象。

(2)成员必须是Promise,对于非Promise的值要用Promise.resolve()做转换。

(3)返回值是一个新的Promise实例。

2.闭包

闭包就是当一个函数可以调用另外一个函数内部变量的时候,这个函数就叫做闭包

闭包闭包可以用来延长作用域,获取函数内部变量

闭包容易造成内存泄漏

闭包主要作用于计时器函数

3.常见修饰符

1.表单修饰符

  • lazy
  • trim
  • number

2.时间修饰符

  • stop
  • prevent
  • self
  • once
  • capture
  • passive
  • native

3.鼠标修饰符

@click.left      左键

@click.right    右键

@click.middle 中键

4.键盘修饰符

普通键:enter/tab/esc

系统键有:ctrl/alt/meta

5.v-bind修饰符

sync

props

camel

4.父子组件生命周期

BeforeCrate(父)=>Crated(父)=>BeforeMont(父)=>BeforeCrate(子)=>Crated(子)=>BeforeMont(子)=>Monted(子)=>Monted(父)

5.vue响应式原理

分为三大步:

1.数据劫持

当new vue 的时候遍历data对象,然后通过Object.defineProperty给所有对象加上getter和setter

2.依赖收集

当进行render的过程时会出触发getter,在getter的时候把当前的watcher对象收集起来

3.派发更新

在进行setter的时候,遍历这个数组的watcher对象,然后进行更新

6.js判断数据类型的方法

7.key的作用

key作用主要是为了高效跟新虚拟DOM,

其执行原理是Vue在patch过程中通过key可以精准的判断两个节点是否为同一个,从而避免频繁的更新不同元素,从而减少DOM操作量,并提高性能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值