比方说,我们有一个带有循环的以下函数,该循环在每次循环中写入一些内存变量。
function myFunction() {
for (var i = 0; i < 10000; i++) {
let myStackVariable = i;
// do something with myStackVariable
}
}
但是,假设我们重新编写此循环以仅在循环外部声明一次变量,然后在循环期间重新分配它。
function myFunction() {
let myStackVariable;
for (var i = 0; i < 10000; i++) {
myStackVariable = i;
// do something with myStackVariable
}
}
我很确定在任何体面的C
中,编译器都只会优化堆栈中的单个变量并始终使用该内存位置。
JavaScript可能会这样做吗?进行后者是否有任何有益的表现?是否值得以一种方式而不是另一种方式来编写。我知道,我知道-过早的优化是万恶之源-但我比什么都更好奇。
我尝试使用n = 100000000
运行测试,结果是相同的,但是我不确定我的示例是否太简单了,因为没有递归等。