gpt4 book ai didi

Javascript 函数执行和嵌套函数调用

转载 作者:行者123 更新时间:2023-11-28 14:07:20 25 4
gpt4 key购买 nike

我已经学习 javascript 几个月了,我参加了一个 js 测验,我看到了这个问题,我无法理解这个非常简单的代码的执行流程,如果有人能解释它,那将非常有帮助清楚地告诉我,提前致谢

var a = 'Is';
function test() {
var a = 'Fun';
function again() {
var a = 'JavaScript';
alert(a);

}
again();
alert(a);
}
test();
alert(a);

输出

Javascript 
Fun
Is

最佳答案

1: var a = 'Is';
2: function test() {
3: var a = 'Fun';
4: function again() {
5: var a = 'JavaScript';
6: alert(a);
7:
8: }
9: again();
10: alert(a);
11: }
12: test();
13: alert(a);

在执行第 1 行之前:变量 a,使用值 undefined 初始化,以及函数 test >, 被添加到当前的词法环境中。如果此代码在全局上下文中运行,这些变量将作为属性添加到全局对象上。

第 1 行:字符串 'Is' 被分配给此词法环境中的变量 a

第12行:在函数test上调用隐藏方法[[Call]],并创建一个新的执行上下文,将变量a(初始值为undefined)和函数again添加到其词法环境中。

第 3 行:字符串 'Fun' 被分配给此词法环境中的变量 a

第 9 行:在函数上再次调用隐藏方法[[Call]],并创建一个新的执行上下文,将变量a(初始值为undefined)添加到其词法环境中。

第 5 行:字符串 'JavaScript' 被分配给此词法环境中的变量 a

第 6 行: 调用主机提供的 window.alert 函数,传递与此词法环境中的变量 a 关联的值 ( 'JavaScript')。

第 10 行: 调用主机提供的 window.alert 函数,传递与此词法环境中的变量 a 关联的值 ( “有趣”)。

第 13 行: 调用主机提供的 window.alert 函数,传递与此词法环境中的变量 a 关联的值 ( "is")。

关于Javascript 函数执行和嵌套函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60813669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com