Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε πώς γίνεται η διαχείριση μνήμης και ο αυτόματος καθαρισμός αντικειμένων στη JavaScript;

sobes.tech AI

Απάντηση από AI

Στην JavaScript, η διαχείριση μνήμης γίνεται αυτόματα μέσω του μηχανισμού συλλογής απορριμμάτων (garbage collection). Όταν δημιουργούνται αντικείμενα, καταλαμβάνουν μνήμη στον σωρό (heap). Ο συλλέκτης απορριμμάτων ελέγχει περιοδικά ποια αντικείμενα δεν χρησιμοποιούνται πλέον — δηλαδή, δεν υπάρχουν αναφορές από ενεργό κώδικα — και ελευθερώνει τη μνήμη που καταλαμβάνουν.

Ο κύριος αλγόριθμος είναι η καταμέτρηση αναφορών και η αναζήτηση προσβάσιμων αντικειμένων (mark-and-sweep). Για παράδειγμα, αν μια μεταβλητή αναφέρεται σε ένα αντικείμενο, θεωρείται ζωντανό. Αν οι αναφορές εξαφανιστούν, το αντικείμενο γίνεται υποψήφιο για διαγραφή.

Παράδειγμα:

let obj = { name: "test" };
obj = null; // τώρα το αντικείμενο δεν είναι προσβάσιμο και θα καθαριστεί από τον συλλέκτη απορριμμάτων

Έτσι, ο προγραμματιστής δεν χρειάζεται να ελευθερώνει χειροκίνητα τη μνήμη, κάτι που μειώνει την πιθανότητα σφαλμάτων που σχετίζονται με διαρροές μνήμης.