promise(0)预备知识

两种类型的回调函数

回调函数:

  1. 自己定义的函数
  2. 不是自己调用
  3. 由系统进行调用
    eg:setTimeout不是回调函数,因为它不是我们自己定义的

同步回调

  1. 理解:立即执行,完全执行完了才结束,不会被放到回调队列中
  2. 栗子:数组遍历的相关回调函数Promise的executor函数

异步回调

  1. 理解:不会被立即执行,会将其放到回调队列中将来执行
  2. 栗子:定时器回调、ajax回调、promise的成功/失败回调

注意:
【宏队列】:定时器回调、ajax回调、dom事件回调
【微队列】:promise回调、mutationObserver回调
1.JS中必须先执行完所有的初始化同步任务代码
2. 每次准备取出第一个宏任务执行之前,都要将所有的微任务一个一个的取出来执行。

例如:forEach里面的回调(同步回调)

const arr = [1,3,23,0];
    arr.forEach(item => {
        console.log(item);
    })
    console.log('我是forEach后面的同步代码');

运行结果:

1
3
23
0
我是forEach后面的同步代码

例如:定时器里面的回调(异步回调)

setTimeout(()=>{
        console.log('我是setTimeout里面的代码!');
    })
    console.log('我是setTimeout之后的同步代码');

我是setTimeout之后的同步代码
我是setTimeout里面的代码!

常见的内置错误

  1. ReferenceError : 引用的变量不存在
  2. TypeError : 数据类型不正确的错误
  3. RangeError : 数据值不在允许的范围内
  4. SyntaxError : 语法错误

例如:ReferenceError

 <script>
    console.log(a);
</script>

运行结果:
在这里插入图片描述

例如:TypeError

<script>
    const n = null;
    console.log(n.name);
</script>

运行结果:
在这里插入图片描述

<script>
    const n = undefined;
    console.log(n.name);
</script>

运行结果:
在这里插入图片描述

<script>
    let n;
    console.log(n.name);
</script>

运行结果:
在这里插入图片描述
注意:

<script>
    let n;
    console.log(n);
</script>

运行结果:不会报错
在这里插入图片描述

例如:RangeError

<script>
    function fn() {
        fn();
    }
    fn();
</script>

运行结果:
在这里插入图片描述

例如:SyntaxError

<script>
    const str = '''';
</script>

在这里插入图片描述

处理错误

  1. 捕获错误: try{}...catch(error){}
  2. 抛出错误 : throw error
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值