Σε αυτό το σεμινάριο θα ασχοληθούμε με τις διάφορες μεθόδους για τη δήλωση μεταβλητών σε JavaScript, ειδικότερα με τις λέξεις-κλειδιά let και const του προτύπου ES6 σε σύγκριση με το var, που μέχρι το ES5 ήταν ο μοναδικός τρόπος για να δημιουργηθούν μεταβλητές. Πολλοί προγραμματιστές έχουν συναντήσει απροσδόκητες συμπεριφορές κατά τη χρήση του var, οι οποίες οδήγησαν σε σφάλματα. Αυτό το μάθημα θα σε βοηθήσει να κατανοήσεις τις σύγχρονες μεθόδους και να διασφαλίσεις ότι δηλώνεις και χρησιμοποιείς μεταβλητές αποτελεσματικά.
Καίριες ανακαλύψεις
Οι νέες δηλώσεις μεταβλητών let και const προσφέρουν πλεονεκτήματα όσον αφορά το scope, τη ορατότητα και την ασφάλεια της χρήσης μεταβλητών. Το let επιτρέπει τη χρήση μιας μεταβλητής εντός ενός block scope, ενώ το const δημιουργεί μια μη μεταβλητή ανάθεση.
Οδηγίες Βήμα-βήμα
Δήλωση μεταβλητών
Για να εργαστούμε αποτελεσματικά με μεταβλητές σε JavaScript, θα εξετάσουμε πρώτα τη δήλωση μεταβλητών χρησιμοποιώντας var, let και const. Ας ξεκινήσουμε με το αρχείο main.js που είναι ενσωματωμένο στο HTML έγγραφό σου.

Εδώ θα χρησιμοποιήσουμε τη λέξη-κλειδί var για να δηλώσουμε μια μεταβλητή. Ας δημιουργήσουμε μια μεταβλητή με το όνομα W και ας της αναθέσουμε μια αρχική τιμή.
Συμπεριφορά του var
Μια τυπική συμπεριφορά του var είναι ότι η μεταβλητή είναι ορατή ακόμη και αν την αρχικοποιήσεις αργότερα στον κώδικα. Ας το δοκιμάσουμε:
Θα κάνω μια εκτύπωση στο κονσόλα της μεταβλητής C πριν την αρχικοποίηση. Να περιμένεις το αποτέλεσμα όταν ορίσω τη μεταβλητή C σε 0. Στην εκτύπωση θα πρέπει να εμφανιστεί undefined, καθώς η τιμή τίθεται μόνο μετά τη γραμμή της ανάθεσης.
Εισαγωγή του let
Τώρα ας δούμε το let. Για να δείξουμε τη διαφορά, ας αντικαταστήσουμε το var με το let και ας αρχικοποιήσουμε τη μεταβλητή C με let C = 0.
Εάν προσπαθήσω να χρησιμοποιήσω τη μεταβλητή C πριν την ανάθεση, θα λάβω ένα σφάλμα ότι προσπαθώ να αποκτήσω πρόσβαση σε μια μη αρχικοποιημένη μεταβλητή. Αυτή η συμπεριφορά διασφαλίζει ότι πάντα θα λαμβάνεις ένα σφάλμα όταν προσπαθείς να αποκτήσεις πρόσβαση σε μια μη αν definida μεταβλητή.

Blockscope με let
Ένα άλλο πλεονέκτημα του let είναι η δυνατότητα δήλωσης μιας μεταβλητής εντός ενός block scope. Ας χρησιμοποιήσουμε μια δήλωση if γι' αυτό:
Εάν δημιουργήσω let C = -1 εντός του μπλοκ if, αυτή η μεταβλητή είναι ορατή μόνο εντός αυτού του block scope. Εάν προσπαθήσω να χρησιμοποιήσω C εκτός του μπλοκ, θα λάβω ένα σφάλμα.

Χρήση του const
Επόμενο βήμα είναι η χρήση του const. Εάν χρησιμοποιούσα const αντί για let, θα δημιουργούσα μια σταθερή μεταβλητή που δεν μπορεί να αλλάξει.
Αν προσπαθήσω να αναθέσω ξανά στην C μετά την ανάθεση const C = 0, θα μου δείξει ότι δεν μπορώ να αναθέσω μια νέα τιμή σε μια σταθερή μεταβλητή.
Αμετάβλητα αντικείμενα με const
Όταν χρησιμοποιούμε const για να δηλώσουμε ένα αντικείμενο, το αντικείμενο καθαυτό μπορεί να αλλάξει, αλλά όχι η αναφορά. Μπορώ να προσθέσω στοιχεία στο αντικείμενο χωρίς περαιτέρω προβλήματα.
Καλές πρακτικές για τη χρήση του let και const
Βασιζόμενος στην εμπειρία μου, προτείνω να χρησιμοποιείς const ως προεπιλογή, εκτός αν είσαι σίγουρος ότι η τιμή της μεταβλητής θα χρειαστεί να αλλάξει αργότερα. Αυτή η πρακτική οδηγεί σε πιο ευανάγνωστο και συντηρήσιμο κώδικα.
Χρησιμοποίησε let όταν είναι αναγκαίο να αλλάξεις την τιμή εντός ενός block scope. Ένα παράδειγμα θα μπορούσε να είναι μια μεταβλητή μέτρησης σε έναν βρόχο.
Σύνοψη – Δήλωση μεταβλητών σε JavaScript: let και const versus var
Συνοψίζοντας, έχουμε εξετάσει τις διαφορές μεταξύ var, let και const. Το let και το const προσφέρουν σημαντικές βελτιώσεις όσον αφορά το scope και την ασφάλεια των μεταβλητών. Ενώ το var είναι παγκόσμιο ή τοπικό στη λειτουργία, το let και το const διασφαλίζουν την ορατότητα εντός ενός block scope. Επιπλέον, το const διασφαλίζει την αμεταβλητότητα της ανάθεσης, μειώνοντας τα σφάλματα και τη μη αναμενόμενη συμπεριφορά στον κώδικα.
Συχνές ερωτήσεις
Πώς δηλώνω μια μεταβλητή σε JavaScript;Μπορείς να δηλώσεις μια μεταβλητή σε JavaScript με τις λέξεις-κλειδιά var, let ή const.
Ποια είναι η διαφορά του let σε σύγκριση με το var;Το let επιτρέπει τη δήλωση μεταβλητών που είναι ορατές μόνο εντός ενός block scope, ενώ το var είναι ορατό παγκόσμια.
Πότε πρέπει να χρησιμοποιώ const;Το const πρέπει να χρησιμοποιείται όταν είσαι σίγουρος ότι η τιμή μιας μεταβλητής δεν πρέπει να αλλάξει κατά τη διάρκεια της εκτέλεσης του προγράμματος.
Τι συμβαίνει αν προσπαθήσω να αναθέσω ξανά μια σταθερά;Θα λάβεις ένα σφάλμα, καθώς μια μεταβλητή const δεν μπορεί να αλλάξει.
Μπορώ να αλλάξω αντικείμενα με const;Ναι, μπορείς να αλλάξεις τις ιδιότητες ενός αντικειμένου που έχει δηλωθεί με const, αλλά όχι τη αναφορά στο αντικείμενο καθαυτό.