在准备js面试题时,遇到了许多知识盲区,或是已经遗忘的知识,所以来写一下博客,记录自己的成长,同时查漏补缺
异步,原型和原型链,闭包被称为js的三座大山,为何会有异步?那我们要来捋一下
js是一门单线程的语言,通俗点讲就是在一个时间段它只能做一件事,就像一条公路,它一次就只能一辆车通过,不能有两辆车并排着通过的,如果有一辆车,它就停公路上,这样子后面的车没法走,那它就会一直卡着,不会往下执行
看一下代码
console.log(100) alert(200) console.log(300)
如果没有点击确定,接下来的300就不会打印,一直停在那里,点击后,才会打印300
所以同步会阻塞代码的执行
异步任务是通过回调函数实现的,它不会阻塞代码的执行,
在执行时会等同步任务执行后再添加到同步代码的后面
什么情况下需要异步,一般而言,异步任务有以下三种类型:1.普通事件,如click点击事件等。2.资源加载,如load,还有通过ajax请求数据。3.定时器,包括setInterval,setTimeout等