gpt4 book ai didi

javascript - JavaScript 中的返回值

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

我已经编程 5 年了,但我刚刚开始想知道一些事情。在此代码示例中,我从函数返回一个值并将其存储为变量。这按什么顺序发生?该语言是解释型语言还是编译型语言重要吗?

function foo() {
return "junk";
}

var bar = foo();

现在我知道了 bar =“垃圾”。这按什么顺序发生?我知道当调用一个函数时,它会将控制权返回给调用它的函数,并且程序会从中断处继续,那么这是否意味着它会返回到 'var bar =' ?

在动态类型语言中, bar 最初是如何创建的?它是在堆上创建的吗?

最佳答案

JavaScript 中的所有函数调用都作为帧堆栈执行。

在您的情况下,当发生“foo”调用时,将为整个“foo”函数调用创建一个堆栈帧,并且该帧包含所有 foo 的变量及其信息。

如果在 foo 中调用另一个函数,则会为该函数创建另一个堆栈帧。

你知道堆栈的行为是对的,最后进来的先出来。这里 foo 内部的函数(如果存在)首先执行并退出堆栈。下一个回合是“foo”。

然后“foo”执行并从堆栈中出来,现在变量turn出现(在你的情况下它是“bar”)。

关于javascript - JavaScript 中的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40297942/

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