Hello,
Today, I took a lecture from freecodecamp.com's Full Stack JavaScript course and learned about memory management. When a variable is created, it retains its memory address.
function createLargeArray() {
let largeArray = new Array(1000000);
return function() {
console.log(largeArray.length);
};
}
let printArrayLength = createLargeArray();
printArrayLength();
This snippet demonstrates that although createLargeArray() can't be trashed, it is still closed, and the return access means that more memory is used than expected.
A more memory-efficient approach would be to extract only what you need
function createLargeArray() {
let largeArray = new Array(1000000);
let arrayLength = largeArray.length;
largeArray = null;
return function() {
console.log(arrayLength);
};
}