პროგრამირებაში ერთ-ერთი მთავარი მცნებაა Garbage collection (ნაგვის შეგროვება) რაც გულისხმობს კომპიუტერის მეხსიერების მენეჯმენტს.
მოცემული მექანიზმი JavaScript-ში უზრუნველყოფს კომპიუტერის მეხსიერების ავტომატურ გასუფთავებას ისეთი ცვლადების მნიშვნელობებისგან, რომელიც აღარაა საჭირო პროგრამის ფუნქციონირებისთვის.
პროგრამირების ზოგიერთ ენას მაგალითად როგორიცაა დაბალი დონის ენები, აუცილებელია მსგავსი ოპერაციის პოროგრამისტის მიერ მენეჯმენტი, რაც შეეხება JavaScript-ს აქ მეხსიერების გასუფთავება ხდება ავტომატურად.
აუცილებელია გვქონდეს კარგი წარმოდეგენა თუ როგორ მუშაობს ჯავასკრიპტის Garbage collection, რათა ავიცილოთ მეხსიერების გაჟონვები (memory leaks).
ჯავასკრიპტი ავტომატოურად გამოყოფს მეხსიერებას მაშინ, როდესაც ჩვენ ახალ ცვლადს, ფუნქციას, ან ობიექტს ვანიჭებთ მნიშვნელობას
const x = 456; // გამოყოფს მეხსიერებას რიცხვისთვის
const t = "ტექსტი"; // გამოყოფს მეხსიერებას სტრინგისთვის
const obj = {
c: 2,
d: null,
}; // გამოყოფს მეხსიერებას ობიექტისთვის და მასში არსებული მნიშვნელობებისთვის
// გამოყოფს მეხსიერებას მასივისთვის და მასში არსებული მნიშვნელობებისთვის
const arr = [2, null, "ტექსტი2"];
function g(c) {
return c * 3;
}
someElement.addEventListener(
"click",
() => {
someElement.style.backgroundColor = "red";
},
false,
);
ზოგიერთი ფუნქციის გამოძახება გამოყოფს მეხსიერებას
const t = new Date(); // გამოყოფს Date ობიექტს
const el = document.createElement("span"); // გამოყოფს DOM ელემენტს
ასევე ზოგიერთი მეთოდის გამოყენებით
const str = "ტექსტი";
const str2 = str.substr(0, 4); // str2 არის ახალი სტრინგი
const arr1 = ["დიახ დიახ", "არა არა"];
const arr2 = ["გენერაცია", "არა არა"];
const arr3 = arr1.concat(arr2);
// ახალი მასივი 4 ელემენტით,
// რომელიც წარმოადგენს arr1 და arr2 ელემენტების გაერთიანებას.
მეხსიერების მართვის პრობლემების უმეტესობა სწორედ ამ ეტაპზე ხდება. ყველაზე რთული ამოცანაა განსაზღვრა, როდის აღარ არის საჭირო გამოყოფილი მეხსიერება.
დაბალი დონის ენებში პროგრამისტმა უნდა განსაზღვროს, პროგრამის რომელ ეტაპზე აღარ არის საჭირო მეხსიერება და გაათავისუფლოს იგი.
მაღალი დონის ზოგიერთი ენა, როგორიცაა JavaScript, იყენებს ავტომატური მეხსიერების მართვის მექანიზმს, რომელიც ცნობილია როგორც ნაგვის შემგროვებელი (Garbage Collector - GC). ნაგვის შემგროვებლის მიზანია მეხსიერების მონიტორინგი, განსაზღვრა, როდის აღარ არის საჭირო გამოყოფილი მეხსიერების ბლოკი და მისი დაბრუნება.