gpt4 book ai didi

javascript - 在 JavaScript 中使用全局变量还是局部变量作为常量?

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

如果我想使用一个简单的数组常量,那么使用本地声明与全局声明在性能方面哪个更好?

// myScript.js
const usefulArray = ["say", "about", "10", "array", "elements"];

export const someFunction = (anotherArray) => {
// const usefulArray = ["say", "about", "10", "array", "elements"];
return anotherArray.concat(usefulArray);
}

我知道就内存而言,local 将位于堆栈上并在函数返回后弹出。并且全局将在进程的生命周期中保留在内存中。

在此函数中全局声明有用数组是否会带来性能优势?什么时候应该使用全局和本地?

最佳答案

在 99% 的情况下这应该无关紧要,特别是当数组元素只有 10 个时。

可能重要的一种情况是如果您的 someFunction运行极其频繁,例如数万次。在这种情况下,每次运行时,都必须创建一个 usefulArray ,然后将其元素添加到传递的 anotherArray 上。除了返回的连接结果之外,创建新的初始数组的开销可能不为零。它还取决于 Javascript 引擎 - 有些引擎可能比其他引擎更好地优化它。

相反,如果您在函数外部创建数组,因为只需创建一次,这可能会导致 someFunction 的许多许多调用所需的操作更少。 .

但这不应该是一个问题。这里的代码极不可能在如此紧密的循环中运行而导致性能成为问题。最好力求代码清晰,并在以后仅在必要时进行优化。过早优化是一个坏主意。

就代码清晰度而言, reduce a variable's scope as much as possible 可能是个好主意- 如果该模块的顶层还有其他内容,那么 usefulArray 可能不是最好的主意当您只想在 someFunction 中使用它时,也在顶层定义。 。您可能会考虑定义它,使其范围仅限于 someFunction ,而不是该模块中的任何其他内容。

请记住,如果您愿意,您也可以完全避免使用该变量:

export const someFunction = anotherArray => anotherArray.concat(
["say", "about", "10", "array", "elements"]
);

关于javascript - 在 JavaScript 中使用全局变量还是局部变量作为常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60766733/

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