gpt4 book ai didi

javascript - 哪个更快更好?声明一个新变量或只是分配给全局变量?

转载 作者:行者123 更新时间:2023-11-29 16:10:18 26 4
gpt4 key购买 nike

首先

我有以下代码

function function_name () {
var list = $('li');
var active = $('li.active');
list.on('click', function(event) {
event.preventDefault();
list.removeClass('active');
// use this way
active = $(this);
// or this way
var newActive = $(this);
});
}

它更快&&更好吗?为全局“事件”变量分配一个新值或者在新函数中声明一个新变量“newActive”?

我想知道是否有更好的方法来按类从 list 变量中过滤 active 列表项。我正在考虑使用 jQuery 的 .get() 函数,但我不确定如何使用它或它的返回值是什么。

最佳答案

你问了两个问题

1。哪个更快?

你关心的是错误的事情。更改 DOM(尤其是以可见的方式)将比分配变量慢 1,000,000 倍。分配全局变量和局部变量之间的区别非常小,如果您还更改了 DOM,则无法测量它。这将取决于浏览器、浏览器版本、操作系统、操作系统版本、处理器类型和月相。

2。哪个更好

一般来说,拥有全局变量被认为是不好的,所以你的状态越局部越好。

原因是有了不依赖于或污染全局命名空间的独立 block ,通过组合它们更容易构建更大的结构。

当您改为使用全局状态(如全局变量或全局函数)时,不同的 block 可能会在这些全局变量上发生冲突,最终结果是组合不起作用(通常以微妙的方式)。

如果您可以完全避免依赖或改变全局状态,那就最好了。这通常可以在 Javascript 中使用以下模式:

(function(){...})()

创建一个函数并立即调用它。主体 ... 可以定义自己的变量并在不干扰外界的情况下使用它们。

关于javascript - 哪个更快更好?声明一个新变量或只是分配给全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30390014/

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