How Garbage Collection Works in JavaScript?
3 min readOct 2, 2024
The JavaScript garbage collector automatically frees up memory when it detects that an object is no longer needed. Here’s a basic explanation using examples.
Example 1: Simple Variable Reassignment
let x = { name: "Alice" }; // Step 1: An object is created and assigned to 'x'
x = null; // Step 2: The reference to the object is removed
Explanation:
- When x is created, memory is allocated for the object { name: “Alice” }.
- When x is set to null, the reference to the object is lost.
- Since there are no other references to the object, the garbage collector marks the object as unreachable and will eventually free its memory.
Example 2: Nested Objects and Garbage Collection
function createObject() {
let person = {
name: "Bob",
address: {
city: "New York"
}
};
return person;
}
let person1 = createObject(); // Step 1: 'person1' holds a reference to the object
person1 = null; // Step 2: The reference is removed
Explanation:
- The createObject function creates an object person with a nested object address.
- person1 is assigned the object returned from createObject, so it holds a reference to it.