JavaScript 是一种同步、单线程语言,一次只能执行一个命令。仅当当前行执行完毕后,才会移至下一行。但是,JavaScript 可以使用事件循环、Promises、Async/Await 和回调队列执行异步操作(JavaScript 默认情况下是同步的)。
JavaScript代码是如何执行的?
JavaScript 中的一切都发生在执行上下文中(将其视为一个大盒子或容器)。整个 JavaScript 代码都在此执行上下文中执行。它有两个组件:内存组件(变量环境)和代码组件(执行线程)。
首先,创建全局执行上下文。在此范围内,每个函数都会创建自己的执行上下文。
在执行任何行代码之前,都会为所有变量和函数分配内存。
分配内存后代码是如何执行的?
JavaScript 引擎再次(逐行)运行整个程序并执行代码。
我们看下面的例子:
function add(a,b){ var ans = a b; console.log(ans); } var addition = add(6,5);
在这个例子中,首先创建了一个全局执行上下文,它由两个组件组成:内存组件(MC)和代码组件(CC)。
对于函数来说,整个函数代码都存储在内存中。对于变量,最初存储一个特殊的值,未定义。
当调用函数时,会创建另一个执行上下文。在内存组件中,存储参数值(a = 6,b = 5),而像 ans 这样的变量最初保留未定义的值。在代码组件中,来自内存组件的值用于执行操作 (a b = 6 5 = 11)。然后将结果打印到控制台。
我希望这个解释能够澄清这个概念。如果您有任何疑问或更正,请随时在评论部分提问。
感谢 Akshay Saini(参考:[(https://youtu.be/iLWTnMzWtj4?si=WWMxDHM-v532vY7F)])
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3