1.单线程,多线程
JavaScript语言的一大特点就是单线程,
也就是说,同一个时间只能做一件事所有任务需要排队,
前一个任务结束,才会执行后一个任务。
如果前一个任务耗时很长,后一个任务就不得不一直等着。
问题1:为什么JavaScript不能有多个线程呢?这样能提高效率!
答:heml5提出web Worker 允许javascript创建多个线程
但是子线程完全受主线程控制,
且不得操作DOM,所以这个并没有改变javascript单线程的本质
2.任务执行队列顺序与—同步—异步
什么是同步?
答:主线程上排队执行的任务,只有前一个任务执行完毕,才能继续执行下一个任务
什么是异步?
答:不进入主线程,而进入任务队列的任务,只有任务队列通知主线程,某个异步任务可以执行了,该任务才会进入主线程
经典例子 — 面试也可以提问哦 ---- 猜下结果
例1:
console.log(1