JavaScript-də yaddaş idarəetməsi və obyektlərin avtomatik təmizlənməsi necə həyata keçirilir, izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
JavaScript-də yaddaş idarəetməsi avtomatik olaraq tullantıların toplanması mexanizmi (garbage collection) vasitəsilə həyata keçirilir. Ob'ektlər yaradıldıqda, onlar yığma yaddaşda yer tuturlar. Tullantıların toplanıcısı müntəzəm olaraq istifadə olunmayan obyektləri yoxlayır — yəni, aktiv koddan heç bir istinad olmayan obyektlər — və onların tutduğu yaddaşı azad edir.
Əsas algoritm referans sayımı və əlçatan obyektlərin axtarışıdır (mark-and-sweep). Məsələn, əgər dəyişən obyektə istinad edirsə, o canlı sayılır. Əgər istinadlar yox olursa, obyekt silinmək üçün namizəd olur.
Nümunə:
let obj = { name: "test" };
obj = null; // indi obyekt əlçatan deyil və tullantıların toplanıcısı tərəfindən təmizlənəcək
Beləliklə, proqramçı yaddaşı əl ilə sərbəst buraxmağa ehtiyac duymur, bu da yaddaş sızıntıları ilə əlaqəli səhvlərin ehtimalını azaldır.