javascript - 在紧凑的 JavaScript 循环中使用 var 会增加与内存相关的开销吗?

标签 javascript memory-management

例如,会这样:

while (true) {
    var random = Math.random();
}

...在大多数实现中效率低于以下?

var random;
while (true) {
    random = Math.random();
}

感谢您的输入。

编辑:如果不是很明显,我主要担心此示例中会发生大量重复(取消)分配。

最佳答案

JavaScript 没有 block 作用域。

在第一个例子中,var text声明是hoistedwhile block 之外。在这两种情况下,变量只声明一次。在这两种情况下,每次 while 循环迭代都会为变量分配一个值。

var

  • 函数-作用域
  • 提升到其功能的顶部
  • 在相同作用域中重新声明相同名称是空操作

关于javascript - 在紧凑的 JavaScript 循环中使用 var 会增加与内存相关的开销吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5884706/

相关文章:

javascript 原型(prototype)和私有(private)变量

javascript - 通知 - 替代 Object.observe?

javascript - 如何在 HTML 页面上隐藏/显示图像

c++ - 堆内存什么时候真正被释放?

java - 是否有一个 Java 库可以根据数据的大小将数据缓存在内存或磁盘中?

javascript - javascript中如何扩展函数变量的范围?

javascript - jQuery clone() 将用户数据留在输入字段中

performance - HashMap 和 Vec 之间的内存高效转换

objective-c - NSData initWithContentsOfURL : does not return the original allocation?

c - 这是内存泄漏,因为内存是在堆栈上分配的吗?