1、如何证明js执行时单线程的:
setTimeout()的回调函数是在主线程执行的
定时器回调函数只有在运行栈中的代码全部执行完后才有可能执行
alert暂停主线程的执行,会暂停计时
2、为什么js要用单线程模式。与它的用途有关
javascript的单线程,与它的用途有关
作为浏览器脚本语言,javascript的主要用途是与用户互动,以及操作DOM
这决定了它只能是单线程,否则会带来很复杂的同步问题。希望对一个对象只有一个操作 不然一个对象实现多个操作会很复杂 有事件上的问题
3、代码的分类
初始化代码
回调代码(回调函数)
4、js引擎执行代码的基本流程
先执行初始化代码:包含一些特别的代码
设置定时器
绑定监听
发送ajax请求
后面在某个时刻才会执行回调函数