代码:

let a=20;

const b=30;

var c;

function multiply(e,f){

var g=20;

return efg

}

c=multiply(20,30);

console.log©

1、代码开始运行,创建一个全局执行上下文来执行全局代码
javaScript运行机制

2、执行阶段,变量赋值完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MrBlv9N8-1604227767939)(C:\Users\HS\AppData\Roaming\Typora\typora-user-images\image-20201101182359665.png)]
javaScript运行机制

3、创建一个新的函数执行上下文来执行该函数代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wrClez68-1604227767942)(C:\Users\HS\AppData\Roaming\Typora\typora-user-images\image-20201101182524628.png)]

javaScript运行机制

4、函数变量赋值完成,执行上下文进入执行阶段

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YRS9lbfz-1604227767947)(C:\Users\HS\AppData\Roaming\Typora\typora-user-images\image-20201101182546311.png)]
javaScript运行机制

5、该函数执行完后,返回值被储存在c中。全局词法环境更新,全局代码执行结束,程序结束

相关文章: