gpt4 book ai didi

javascript - 当它在 javascript 中变为 null 时,数组元素会变成什么?

转载 作者:行者123 更新时间:2023-11-30 10:23:25 25 4
gpt4 key购买 nike

所以我正在编写一个大型 AJAX 控件类,我遇到了一点好奇。

为了便于交流,假设我在初始化时将页面的所有元素添加到一个数组中。

当有人执行启用 AJAX 的链接时,后续方法会用从 AJAX 调用收到的内容替换指定的内容部分。

然而,假设当此 AJAX 调用完成并替换内容部分内的节点时,先前存储在数组中的节点现在为 null 或未定义(或任何表示已死...(不是 javascript 大师, 清楚地 ))。

当我再次遍历数组中的所有节点时会发生什么?这些元素不再存在了吗?或者它们仍在消耗旧索引的空间,但现在无法访问?

这似乎是一个有点愚蠢的问题,但实际上我只是想看看是否有任何检测和垃圾收集发生在 javascript 数组中的“死”元素上。

谢谢和干杯。

最佳答案

如果你在 javascript 中的数组中有一个 DOM 节点,然后将其从 DOM 中删除(例如,在你的 ajax 调用之后),该节点将继续存在于数组中,并继续占用空间。如果需要,您可以稍后再次将其添加到 DOM。

如果您不再将它添加到 DOM,而是将数组中的项目设置为其他一些值,例如 null 或 undefined,假设没有剩余的对该元素的引用,它将被垃圾收集并且没有更长的空间。

值得牢记的是,javascript 数组与 NodeListHTMLCollection 之间存在差异。您可以通过调用一些 DOM 方法(例如 document.getElementsByTagName)来获取节点列表。 NodeLists 看起来有点像数组,但保持“事件”状态,因此如果从 DOM 中删除一个节点,它也会从 NodeList 中删除。

关于javascript - 当它在 javascript 中变为 null 时,数组元素会变成什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20687383/

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