gpt4 book ai didi

javascript - input() 函数执行上下文是否位于 check() 函数执行上下文内?

转载 作者:行者123 更新时间:2023-12-03 00:24:24 25 4
gpt4 key购买 nike

我的问题是关于此代码中的执行上下文:当使用 console.log 调用函数 check() 时,input() 函数执行上下文将位于 check() 函数执行上下文内部还是外部。

var x;
var y;
function check(){
y = input()
if(y<10){
return "true";
}
else{
return false;
}
}

function input(){
x = eval(prompt("please enter a number "));
return x;
}

console.log(check());

我尝试在函数外部使变量减速度并在函数内部分配它们。

当我将输入添加为(9)时得到的结果我得到了 true 并且这是正确的。问题仅与上下文有关。

最佳答案

这不是“内部”。执行上下文在堆栈上一个位于另一个之上。

全局执行上下文位于底部。当您调用 check() 时,其执行上下文会被推送到堆栈顶部。

check()
-------
Global

当在 check 中调用 input() 时,新的执行上下文将再次被推到顶部:

input()
-------
check()
-------
Global

input返回一个值时,其上下文将从数组中弹出,并恢复执行check。当 check 返回时,它的上下文也会弹出。

两个函数都可以通过作用域链访问变量xy

关于javascript - input() 函数执行上下文是否位于 check() 函数执行上下文内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54156086/

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