#node-js
I love this brilliantly clear explanation:
> What's a memory leak in JavaScript?
>
> A memory leak is an unintentional increase in the amount of memory used by an application over time. In JavaScript, memory leaks happen when objects are no longer needed, but are still referenced by functions or other objects. These references prevent the unneeded objects from being reclaimed by the garbage collector.
>
> The job of the garbage collector is to identify and reclaim objects that are no longer reachable from the application. This works even when objects reference themselves, or cyclically reference each other–once there are no remaining references through which an application could access a group of objects, it can be garbage collected.
>
> ```js
> let A = {};
> console.log(A); // local variable reference
>
> let B = {A}; // B.A is a second reference to A
>
> A = null; // unset local variable reference
>
> console.log(B.A); // A can still be referenced by B
>
> B.A = null; // unset B's reference to A
>
> // No references to A are left. It can be garbage collected.
> ```
-- From: [Detached window memory leaks](https://web.dev/detached-window-memory-leaks/) by Jason Miller and Bartek Nowierski, September 2020
----
Also good: [Memory Leaks Demystified](http://nodesource.com/blog/memory-leaks-demystified/) on The NodeSource Blog.