1)什么是回调函数?
只声明不调用,把函数当作参数传到另一函数中,需要时再调用该函数
functionf1(){}
functionf2(fn){
fn()
}
f2(f1)
//f1函数被声明,却没有被调用
//把f1函数当成参数传给f2函数,
//f2函数调用了f1函数,所以f1是回调
2)回调函数并不都是异步回调还有同步回调
同步回调:回调调用之后才有结果
let arr=[1,2,3,4]
arr.filter((item,index)=>{return item>2})//先回调,再过滤
异步回调:回调调用之前就有结果
setTimeout(()=>{},2000)//回调是在返回结果之后