问题标签 [mark-and-sweep]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
20 浏览

javascript - 所有现代浏览器都根据标记和扫描算法工作吗?

我并不完全清楚垃圾收集器如何为 js 工作。

所有现代浏览器都根据标记和扫描算法(Chrome、Firefox ...)工作吗?

MDN

众所周知,Internet Explorer 6 和 7 具有针对 DOM 对象的引用计数垃圾收集器。循环是一个常见的错误,会产生内存泄漏。

在我看来,只有 IE 才能根据引用计数垃圾收集器工作。这是真的吗?

0 投票
0 回答
20 浏览

javascript - 标记和扫描算法是否仅适用于参考?

我并不完全清楚Mark-and-sweep算法是如何工作的。

MDN

该算法将“不再需要对象”的定义简化为“无法访问对象”。

事实证明,该算法仅适用于对象上的引用,并且根本不清除全局变量、函数……。可以?

0 投票
1 回答
46 浏览

javascript - 我们不能仅仅因为“JS规则”而使用函数中的变量吗?

我认为这是一个有点奇怪的问题。但我会解释我的意思。

事实证明,Mark-and-sweep算法在从这个函数中出去后清除了这个例子中的对象引用。

那么,如果 Mark-and-sweep 只能清除对象,那么这个函数中的所有变量都会保留吗?我的意思是我们不能在函数之外使用它们。这种行为仅仅是因为“JS规则”吗?

PS我的意思是,在知道这些信息之前,我认为我们不能使用函数中的所有变量,因为在我们退出这个函数后它们会被删除。