当前位置: 首页 > 知识库问答 >
问题:

null和undefined对于显式地使对象不可达是否同样有效?

沃瑾瑜
2023-03-14

根据对一个相关问题的回答,如果您希望对对象进行垃圾回收,那么最好使它们显式不可用。
对于所有实际意图和目的来说,使用null值还是undefined值进行垃圾回收有关系吗?

简而言之,下面的两个对象(无论它们最初引用了什么)对于垃圾收集器来说都可以同等地访问吗?

window.foo = null;
window.bar = void 0;

共有1个答案

通宾白
2023-03-14

分配什么值并不重要:它可能是定义{}42

重要的是,您需要断开堆中变量和对象之间的连接。

一旦一个对象无法到达--它就是被收集的候选对象,不管有一天引用它的变量的当前值是多少。

 类似资料:
  • 问题内容: 是否可以使用JavaScript更改CSS样式表? 我 不是 在说: 我 AM 谈论改变: 除了做一些肮脏的事情(我们还没有尝试过)之外,比如在头部创建一个新对象,innerHTML在其中创建一个样式标签,等等。尽管这样做确实可行,但仍会带来一些样式问题块已经在其他地方定义了,我不确定何时/是否浏览器会解析动态创建的样式块? 问题答案: 浏览器支持已得到很大改进(支持所有浏览器,包括I

  • 问题内容: 我尝试过一些关于绑定和未绑定方法的代码。当我们调用它们时,我认为它们都会返回对象。但是,当我用于获取一些信息时,它返回的内容我并不理解。 IDE:Eclipse 插件:pydev 输出是… 为什么#1和#2返回相同的ID?他们不是不同的对象吗?如果我们分配和两个变量,#3,#4回报不同的ID。 我认为#3和#4表明它们不是同一对象,而是#1和#2 … 绑定方法的ID和未绑定方法的ID有

  • 问题内容: 为什么在JavaScript中被视为? 正在检查 与…相同 ? 并且: 和之间有什么区别? 问题答案: (name is undefined) You: What is name? () JavaScript:* ?什么啊 我不知道你在说什么您以前从未提到过。您是否在(客户端)看到其他脚本语言? You: What is name? JavaScript: I don’t know.。

  • 让我们考虑下面示例中的一个场景,其中我想检查对象的值或,但它在尝试访问第二级对象()时抛出异常'无法读取未定义的属性b。 最终,我想访问,如何使用lodash检查值是否为“未定义”或“null”?是否有方法检查一系列值中的对象?

  • Kotlin 用对象表达式和对象声明来实现创建一个对某个类做了轻微改动的类的对象,且不需要去声明一个新的子类。 对象表达式 通过对象表达式实现一个匿名内部类的对象用于方法的参数中: window.addMouseListener(object : MouseAdapter() { override fun mouseClicked(e: MouseEvent) { //

  • 问题内容: 为什么下面的代码无法编译? 我得到一个错误 main.go:12:常量2147483648溢出int 以上说法是正确的。是的,2147483648溢出int(在32位体系结构中)。但是移位操作将导致负值,即-2147483648。 但是相同的代码也可以工作,如果我将常量更改为变量并获得了预期的输出。 问题答案: 在常量和非常量表达式之间的评估存在差异,这是因为常量是精确的: 数字常数表