同步编程:是一种请求—响应模式,计算机按顺序一行一行地执行代码,当前代码任务耗时执行会阻塞后续代码的执行。
异步编程:是一种事件驱动编程,请求调用函数或方法后,无需立即等待反应,可以立即执行其他任务,之前的任务响应返回后可以通过状态,通知和回调来通知调用者。
我们在java中学到的多线程就是常见的异步编程模式,但是在javaScript中,是单线程执行的。
可以说多线程是并行机制,而javaScript是并发机制,并发机制指在同一时间段内,多任务同时进行着,但是某一时刻,只有某一任务执行。
常见的有以下几种情况属于异步编程
1.回调函数
<script>
function callBack(value){
console.log(value);
}
function main(callBack,value){
console.log("我是主函数");
callBack(value); //结果是“我是回调函数”
}
main(callBack,"我是回调函数");//将回调函数的参数作为与回调函数同等级的参数进行传递
</script>
其次,定时器setTimeout()和 setInterval()也属于回调函数,不同的是setTimeout()在规定时间后执行完操作就停止了,而setInterval()则可以一直循环下去。
举个例子
window.setTimeout(() => {
window.alert("任务即将截止");
}, time);
点击确定之后,弹框就消失,但如果写setInterval()定时器就会一直弹出提示框。尽管如此,setInterval仍然应用在很多计时事件中。
2.事件监听
需要用到jquery(后续补充)