promise入门的准备工作-(尚硅谷教程笔记)

    科技2022-07-14  120

    一,函数对象与实例对象的区分

    函数对象:将函数作为对象使用时,简称为函数对象

    实例对象:new函数产生的对象,简称对象

    正常来说,()的左边是函数,点的左边是对象。 即可以根据()或者点来判断这个函数是作为函数来使用的还是作为对象来使用的,作为函数使用,则是函数,作为对象使用,则是函数对象。而通过构造函数产生的对象,就直接判定为实例对象。

    二,两种类型的回调函数

    回忆下回调函数的定义:我自己定义的,我没有调用,但是最终它执行了。

    1,同步回调

    立即执行,完全执行完了才结束,并不会放入到回调队列中去。 例子:数组遍历相关的回调函数

    const arr =[1,2,3,4,5,6,7,8] arr.forEach(item=>{ console.log(item) }) console.log("本宝宝心里苦啊")

    也就是说,他会等这里的遍历数组结束了,才会按顺序执行后面的代码,如果遍历数组花了很长时间,程序就会一直在遍历,而不会执行后面的代码。

    2,异步回调

    不会立即执行,会放入到回调队列中去,等待将来执行 例子:定时器回调/ajax回调/promise成功或失败的回调

    setTimeout(()=>{ console.log("这是定时器中的内容") },1000) console.log("宝宝心里又不苦惹~~~~")

    也就是先执行正常的代码,而后执行异步操作,因为异步操作被放入队列中将来执行了。 所以,可以根据程序的先后执行来判断一些操作是同步回调,还是异步回调。

    三,常见的内置错误

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

    四,错误的处理(捕获与抛出)

    捕获错误:try……catch

    抛出错误:throw error

    //把你认为有可能发生报错的代码放置在try里面,如果报错,则执行catch代码,不报错则顺序执行 //catch的参数是个对象,错误信息放置在message和stack里面 try{ let d console.log(d.xxx) }catch(error){ console.log(error.message) console.log('这里也可以定义一些自定义的报错信息') } console.log('如果报错,这里的也会执行')

    当然,也可以自定义错误:

    function something(){ if(Date.now()%2===1){ console.log('当前时间为奇数,可以执行任务') }else{ throw new Error('当前时间为偶数,无法执行任务') } } //捕获异常处理 try{ something() }catch(error){ console.log(error.message) } console.log('如果报错,这里的也会执行')

    Processed: 0.011, SQL: 8