gpt4 book ai didi

javascript - 在 JavaScript 循环中,如何在内存中管理 block 级分配?

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

我对 JavaScript 解释器管理 block 级变量(如 letconst)的方式感到好奇。

假设我有一个循环:

for (let i = 0; i < 100; i++) {
const square = i * i;
}

isquare 到底分配在哪里?

我明白有一个帧堆栈;每个函数调用都会添加一个新的类似字典的对象,表示函数的词汇上下文。当函数退出时,我们会递减堆栈指针。这意味着我们可以运行带有变量的函数,而不会在堆上创建垃圾。

但是我们的 block 变量在哪里?我们是否用另一个项目来增加框架堆栈?它们是否“扁平化”到上下文中,但有一个特殊的标志或符号来将它们与同级 block 中的变量区分开来?

最后,我通常可以在哪里了解 JavaScript 解释器(如 V8)如何管理内存?

最佳答案

这里有一些很棒的堆栈溢出答案,可能会对您有所帮助。
Memory allocation for JavaScript types
How variables are allocated memory in Javascript?
JavaScript variables declare outside or inside loop?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management
当然还有documentation of V8.
我希望阅读这些内容能够帮助您更多地了解 javascript 内存管理。

关于javascript - 在 JavaScript 循环中,如何在内存中管理 block 级分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44023988/

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