JavaScript 是如何工作的和代码在幕后是如何被执行的
JavaScript是世界上一个有趣的语言,它的工作过程与其他语言有很大的不同。 JavaScript是同步的(按顺序执行),单线程语言(这意味着JavaScript一次只能执行一条命令)。
JavaScript中的所有操作都发生在执行上下文内,你可以将其视为一个大盒子或一个容器,在其中执行整个JavaScript代码。执行上下文包含两个部分,一个是Memory(变量环境),其中存储所有变量和函数的键值对,另一个是Code Component(执行线程),其中代码按行依次执行(如下图所示)。

现在,当你运行JavaScript代码时会发生什么呢?
简单的答案是:创建一个执行上下文。
现在我写了下面的演示代码,并且会逐行解释代码的运行过程。
JavaScript
<script>
var n = 3;
function squr(num) {
var ans = num * num;
return ans;
}
var three = squr(n);
</script>
当你运行整个代码时,会创建一个全局执行上下文,它包含两个部分,一个是内存,另一个是代码执行。
当遇到第一行时,它将为所有变量(n, three, five)和函数(square)分配内存。在为变量分配内存时,它会保留一个特殊值undefined,对于函数,则存储了整个代码。下面是一种图形化的表示方式。

在为所有变量和函数分配内存之后,代码执行阶段开始(代码逐行执行)。
第1行:var n=3,3的值放入n标识符中。
第2-5行:没有要执行的内容。
第6行:我们调用一个函数,现在函数是JavaScript的核心。函数是一个小程序,每当调用一个新的函数时,都会创建一个新的执行上下文(在代码执行阶段内部)。它还包含了两个部分的内存和代码执行阶段。为变量和函数分配内存(包括函数参数和其他变量)。

分配内存后,代码执行阶段在这里,函数内部的代码被执行,undefined被实际值替代。

极客教程