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

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

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

实例对象: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('如果报错,这里的也会执行')

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42349568/article/details/108918966