1、我们定义的函数;
2、我们自己没有调用这个函数;
3、最终这个函数被调用执行了。
1、同步的回调函数:它会在主线程上按照执行上下文的顺序立即执行,不会被放入回调队列中随后执行。数组遍历的相关回调函数都属于这种情况。
2、异步的回调函数:它会被放入回调队列中,待主线程执行完毕以后再执行。定时器回调和AJAX回调都属于这种情况。
let arr=[1,2,3,4,5,6, 6] arr.forEach((item)=>{//数组遍历类的回调函数,会立即执行 console.log(item); }) console.log('主线程的代码');//属于主线程的代码,会早于异步回调函数先执行 /* setTimeout(()=>{//是定时器回调函数,所以会被放入回调执行队列 console.log('@'); },2000) console.log('主线程'); */