1 JavaScript执行过程
1.1 单线程的JavaScript
JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?
JavaScript引擎(专门处理JavaScript脚本的线程,一般会附带在网页浏览器之中,每个浏览器都有自己的引擎,比如Chrome的V8)在接受一段代码之后会进行以下四个阶段:
1、词法分析
2、语法分析
3、预编译阶段
5、执行阶段
当浏览器按顺序加载由<script>
标签分割的JS代码块,加载JS代码块完毕后,立刻进入以上几个阶段,然后再按顺序查找下一个代码块,再继续执行以上的阶段,无论是外部脚本文件(不异步加载)还是内部脚本代码块,都是一样的原理,并且都在同一个全局作用域中。