Sobes.tech
Junior

Ποια είναι η βασική διαφορά μεταξύ μεταβλητών και αμετάβλητων τύπων δεδομένων;

sobes.tech AI

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

Η βασική διαφορά έγκειται στην ικανότητα να αλλάξει την τιμή ενός αντικειμένου μετά τη δημιουργία του. Οι μεταβλητοί τύποι επιτρέπουν άμεσες αλλαγές, ενώ οι αμετάβλητοι όχι. Όταν "αλλάζουμε" ένα αμετάβλητο αντικείμενο, στην πραγματικότητα δημιουργείται ένα νέο αντικείμενο με μια νέα τιμή.

Παραδείγματα:

Μεταβλητοί τύποι:

  • Array
  • Object
// Παράδειγμα μεταβλητού (Array)
let mutableArray = [1, 2];
mutableArray.push(3); // Τροποποιεί τον υπάρχοντα πίνακα
console.log(mutableArray); // Θα εμφανίσει: [1, 2, 3]
// Παράδειγμα μεταβλητού (Object)
let mutableObject = { a: 1 };
mutableObject.b = 2; // Τροποποιεί το υπάρχον αντικείμενο
console.log(mutableObject); // Θα εμφανίσει: { a: 1, b: 2 }

Αμετάβλητοι τύποι:

  • String
  • Number
  • Boolean
  • null
  • undefined
  • Symbol
  • BigInt
// Παράδειγμα αμετάβλητου (String)
let immutableString = "γεια";
immutableString = immutableString + " κόσμος"; // Δημιουργείται μια νέα συμβολοσειρά
console.log(immutableString); // Θα εμφανίσει: γεια κόσμος

// Η σύγκριση αναφορών θα δείξει τη διαφορά
let str1 = "abc";
let str2 = str1.toUpperCase();
console.log(str1 === str2); // Θα εμφανίσει: false
// Παράδειγμα αμετάβλητου (Number)
let immutableNumber = 10;
immutableNumber = immutableNumber + 5; // Δημιουργείται μια νέα αριθμητική τιμή
console.log(immutableNumber); // Θα εμφανίσει: 15

Σύγκριση:

Χαρακτηριστικό Μεταβλητό Αμετάβλητο
Αλλαγή Δυνατή μετά τη δημιουργία Αδύνατη μετά τη δημιουργία
Νέα αναφορά Παραμένει η ίδια Δημιουργείται νέα κατά "αλλαγή"

Η κατανόηση αυτής της διαφοράς είναι κρίσιμη για την προβλεψιμότητα του κώδικα, την εργασία με καταστάσεις (π.χ., σε React με Redux) και την βελτιστοποίηση. Η χρήση αμετάβλητων δεδομένων απλοποιεί την αποσφαλμάτωση, επιτρέπει την εύκολη υλοποίηση λειτουργιών undo και βελτιστοποιεί το rendering σε UI frameworks μέσω απλών συγκρίσεων αναφορών.