gpt4 book ai didi

javascript - 存储在变量中会提高性能吗? var, let, const 也会影响性能吗?

转载 作者:搜寻专家 更新时间:2023-11-01 00:34:51 25 4
gpt4 key购买 nike

例如,在 Node 应用中,使用 express,而不是使用:

app.listen(3000);

我们使用:

const port = 3000;
app.listen(port)

它会提高性能吗,不管有多小?例如,我听说它可以提高循环的性能。

题外话:app.listen() 函数不是一个循环吗?还是使用内置循环?

此外,使用 var、let 或 const 声明在性能上彼此不同吗?例如,由于使用 const 声明(而不是 var 或 let)意味着保持变量“port”不变,它会产生任何影响吗?

最佳答案

不,仅仅通过将值存储在变量中并不会提高性能,事实上,由于发生了额外的内存分配和获取,性能会略有下降。

但是,将计算结果存储在变量中并使用变量而不是每次需要值时都重新计算它可以提高性能。

app.listen(3000) 转换为以下格式没有任何性能优势。

const port = 3000;
app.listen(port)

但是,如果 port 值需要一些计算,例如,

const port = process.env.PORT || 3000;

然后将结果存储在一个变量中,并在每次需要端口号时使用该值,与每次都计算它相比,将具有性能优势。

(在您的示例中,由于 port 值仅使用一次,因此将结果存储在变量中没有意义。)

I heard, for example, it improves performance of loops. Again, you have a performance benefit only if the value stored in the variable requires some form of computation.

const array = [1,2,3];
const length = array.length;
for (let i =0 ;i<length; i++) {
console.log(array[i]);
}

与下面的示例相比,上面的示例具有性能优势。

const array = [1,2,3];
for (let i =0 ;i<array.length; i++) {
console.log(array[i]);
}

在这个例子中,在循环的每次迭代中,都必须计算数组的长度,这不是必需的,因为数组不会改变。

And off-topic: isn't app.listen() function kinda a loop? Or does it use an inbuilt loop?

不,app.listen() 不是循环。它是一个事件监听器。在内部, Node 事件循环处理此类 I/O 操作。您可以阅读有关事件循环的更多信息 here .

关于javascript - 存储在变量中会提高性能吗? var, let, const 也会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56112228/

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