gpt4 book ai didi

javascript - 为什么在函数外部声明变量并在循环中赋值比局部变量使用更多内存?

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

我正在做 2 个简单的测试,并在 google devtools 时间线中对它们进行分析。在函数外部声明一个变量并在 for 循环中为其分配一个新值似乎会分配大量内存并反复触发垃圾收集器。
另一方面,在函数范围内声明变量会分配更少的内存或根本不分配内存。
这是第一种情况:

(function() {
function createVars() {
var i;
var b;
for (i = 0; i < 10000; i += 1) {
b = Math.random();
}
requestAnimationFrame(createVars);
};

requestAnimationFrame(createVars);
}())

case 1

第二个:

(function() {
var b;

function createVars() {
var i;
for (i = 0; i < 10000; i += 1) {
b = Math.random();
}
requestAnimationFrame(createVars);
};

requestAnimationFrame(createVars);
}())

case 2
我本以为会出现相反或至少类似的行为。

最佳答案

第一种情况,每次调用“createVars”时都会创建一个“b”变量。第二种情况,您只使用一个变量。总是一样。 :)

关于javascript - 为什么在函数外部声明变量并在循环中赋值比局部变量使用更多内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29336089/

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