null 和 undefined 对于显式使对象无法访问是否同样有效?

Nit*_*Nit 5 javascript garbage-collection

根据对相关问题的回答,如果您希望对象被垃圾收集,最好使对象明确不可用。
对于所有实际意图和目的,是用null值还是用undefined值来完成这件事重要吗?

简而言之,垃圾收集器是否可以同等访问以下两个对象(无论它们最初可能引用什么)?

window.foo = null;
window.bar = void 0;
Run Code Online (Sandbox Code Playgroud)

zer*_*kms 4

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

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

一旦某个对象不可访问,它就成为被收集的候选者,无论有一天引用它的变量当前持有什么当前值。

这是 Google Chrome 的内存快照,仅供娱乐:

在此输入图像描述

以及对应的JSFiddle:http://jsfiddle.net/r9b5taxf/