Η λέξη-κλειδί const χρησιμοποιείται στη JavaScript για να δηλώσει μια σταθερά (constant) μεταβλητή, δηλαδή μια μεταβλητή που δεν μπορεί να αλλάξει την τιμή της μετά την αρχικοποίησή της.

Μια μεταβλητή που έχει δηλωθεί με το const πρέπει να αρχικοποιηθεί με μια τιμή κατά τη δήλωσή της και δεν μπορεί να αλλάξει τιμή στο μέλλον. Αυτό σημαίνει ότι μια μεταβλητή const είναι μια σταθερή που διατηρεί την ίδια τιμή καθ’ όλη τη διάρκεια του προγράμματος.

Ας δούμε ένα παράδειγμα:

const x = 5;
console.log(x); // Εκτύπωση της τιμής της μεταβλητής x

x = 10; // Σφάλμα: Δεν επιτρέπεται η αλλαγή της τιμής της μεταβλητής x

Στο παραπάνω παράδειγμα, δηλώνουμε τη μεταβλητή x με το const και την τιμή 5. Η μεταβλητή x δεν μπορεί να αλλάξει τιμή μετά την αρχικοποίησή της. Αν προσπαθήσουμε να αλλάξουμε την τιμή της x με την εκχώρηση x = 10, θα λάβουμε ένα σφάλμα, καθώς η x είναι μια σταθερά που διατηρεί την αρχική της τιμή.

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

Το const στην JavaScript δημιουργεί μια σταθερή αναφορά προς μια τιμή, όχι μια σταθερή τιμή. Αυτό σημαίνει ότι δεν μπορούμε να εκχωρήσουμε μια νέα τιμή σε μια μεταβλητή const, αλλά μπορούμε να αλλάξουμε τα στοιχεία ενός πίνακα ή τις ιδιότητες ενός αντικειμένου που δηλώνεται με const.

Ας δούμε ένα παράδειγμα:

const x = 5;
console.log(x); // Εκτύπωση της τιμής της μεταβλητής x

x = 10; // Σφάλμα: Δεν επιτρέπεται η αλλαγή της τιμής της μεταβλητής x

const numbers = [1, 2, 3];
console.log(numbers); // Εκτύπωση του πίνακα numbers

numbers[0] = 10; // Επιτρέπεται η αλλαγή του περιεχομένου του πίνακα numbers
console.log(numbers); // Εκτύπωση του ανανεωμένου πίνακα numbers

const person = { name: 'John', age: 30 };
console.log(person); // Εκτύπωση του αντικειμένου person

person.name = 'Jane'; // Επιτρέπεται η αλλαγή των ιδιοτήτων του αντικειμένου person
console.log(person); // Εκτύπωση του ανανεωμένου αντικειμένου person

Στο παραπάνω παράδειγμα, η μεταβλητή x δηλώνεται με const και την τιμή 5. Δεν επιτρέπεται η εκχώρηση μιας νέας τιμής στην x, και αυτό θα προκαλέσει ένα σφάλμα. Ωστόσο, ο πίνακας numbers και το αντικείμενο person που δηλώνονται με const μπορούν να τροποποιηθούν με την αλλαγή των στοιχείων του πίνακα και των ιδιοτήτων του αντικειμένου αντίστοιχα.

[adinserter block=”2″]

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

Όταν χρησιμοποιούμε τη λέξη-κλειδί const για να δηλώσουμε έναν πίνακα στη JavaScript, δημιουργούμε μια σταθερή αναφορά προς τον πίνακα. Αυτό σημαίνει ότι δεν μπορούμε να αναθέσουμε μια νέα τιμή στην μεταβλητή του πίνακα, αλλά μπορούμε να τροποποιήσουμε τα στοιχεία του πίνακα.

Ας δούμε ένα παράδειγμα:

const numbers = [1, 2, 3];
console.log(numbers); // Εκτύπωση του πίνακα numbers

numbers[0] = 10; // Επιτρέπεται η τροποποίηση του στοιχείου του πίνακα
console.log(numbers); // Εκτύπωση του ανανεωμένου πίνακα numbers

numbers = [4, 5, 6]; // Σφάλμα: Δεν επιτρέπεται η αναθεσμένη τιμή στην μεταβλητή του πίνακα

Στο παραπάνω παράδειγμα, δημιουργούμε έναν πίνακα numbers με τη χρήση του const και τις τιμές [1, 2, 3]. Αν και δεν μπορούμε να αναθέσουμε μια νέα τιμή στη μεταβλητή numbers, μπορούμε να τροποποιήσουμε τα στοιχεία του πίνακα με την ανάθεση νέων τιμών σε αυτά. Έτσι, μπορούμε να αλλάξουμε την τιμή του πρώτου στοιχείου από 1 σε 10.

Ωστόσο, προσέξτε ότι δεν μπορούμε να αναθέσουμε έναν ολοκληρωτικά νέο πίνακα στη μεταβλητή numbers, καθώς αυτό θα προκαλέσει ένα σφάλμα. Η σταθερή αναφορά προς τον πίνακα παραμένει η ίδια, αλλά μπορούμε να τροποποιήσουμε τα στοιχεία του πίνακα μεμονωμένα.

Όταν χρησιμοποιούμε τη λέξη-κλειδί const για να δηλώσουμε ένα αντικείμενο (object) στη JavaScript, δημιουργούμε μια σταθερή αναφορά προς το αντικείμενο. Αυτό σημαίνει ότι δεν μπορούμε να αλλάξουμε την αναφορά προς ένα νέο αντικείμενο, αλλά μπορούμε να τροποποιήσουμε τις ιδιότητες του αντικειμένου.

Ας δούμε ένα παράδειγμα:

const person = { name: 'John', age: 30 };
console.log(person); // Εκτύπωση του αντικειμένου person

person.name = 'Jane'; // Επιτρέπεται η αλλαγή της ιδιότητας name του αντικειμένου
console.log(person); // Εκτύπωση του ανανεωμένου αντικειμένου person

person = { name: 'Jane', age: 35 }; // Σφάλμα: Δεν επιτρέπεται η αναθεσμένη τιμή στην μεταβλητή του αντικειμένου

Στο παραπάνω παράδειγμα, δημιουργούμε ένα αντικείμενο person με το const και τις ιδιότητες name: 'John' και age: 30. Αν και δεν μπορούμε να αναθέσουμε μια νέα τιμή στη μεταβλητή person, μπορούμε να τροποποιήσουμε τις ιδιότητες του αντικειμένου. Έτσι, μπορούμε να αλλάξουμε την τιμή της ιδιότητας name από 'John' σε 'Jane'.

Προσέξτε ότι δεν μπορούμε να αναθέσουμε ένα νέο αντικείμενο στη μεταβλητή person, καθώς αυτό θα προκαλέσει ένα σφάλμα. Η σταθερή αναφορά προς το αντικείμενο παραμένει η ίδια, αλλά μπορούμε να τροποποιήσουμε τις ιδιότητες του αντικειμένου.

[adinserter block=”3″]

Υπάρχουν κάποιες σημαντικές διαφορές μεταξύ των var, let και const στη JavaScript:

  1. var: Οι μεταβλητές που δηλώνονται με var έχουν λειτουργία σκοπού στην οποία ορίζονται. Αυτό σημαίνει ότι οι μεταβλητές var είναι διαθέσιμες σε ολόκληρη τη συνάρτηση ή τον κώδικα που τις περιέχει. Επίσης, οι μεταβλητές var μπορούν να ξαναδηλωθούν και να αναθεωρηθούν σε οποιοδήποτε σημείο του κώδικα. Αυτό μπορεί να οδηγήσει σε προβλήματα και σύγχυση, καθώς οι μεταβλητές μπορεί να αλλάξουν τιμή και σκοπό απρόσμενα.
  2. let: Οι μεταβλητές που δηλώνονται με let έχουν τοπική εμβέλεια σε ένα μπλοκ (block scope). Αυτό σημαίνει ότι οι μεταβλητές let είναι ορατές μόνο μέσα στο μπλοκ όπου δηλώνονται, καθιστώντας τον κώδικα πιο προβλέψιμο και εύκολο στην κατανόηση. Επίσης, οι μεταβλητές let δεν μπορούν να ξαναδηλωθούν μέσα στο ίδιο μπλοκ, αποτρέποντας την πιθανότητα σύγκρουσης ονομάτων μεταβλητών.
  3. const: Οι μεταβλητές που δηλώνονται με const είναι σταθερές και δεν μπορούν να αναθεωρηθούν μετά την αρχική εκχώρηση τιμής. Αυτό σημαίνει ότι οι μεταβλητές const πρέπει να αρχικοποιηθούν με μια τιμή κατά τη δήλωσή τους και δεν μπορούν να αλλάξουν την αναφορά προς μια νέα τιμή. Ωστόσο, αν η μεταβλητή const αναφέρεται σε ένα αντικείμενο ή έναν πίνακα, μπορούμε να τροποποιήσουμε τις ιδιότητες του αντικειμένου ή τα στοιχεία του πίνακα, αλλά δεν μπορούμε να αναθέσουμε ένα νέο αντικείμενο ή πίνακα στη μεταβλητή const.

Η χρήση του let και του const συνιστάται περισσότερο στην JavaScript σε σύγκριση με το var, καθώς προσφέρουν καλύτερη εμβέλεια και προβλεψιμότητα στον κώδικα. Επιπλέον, η χρήση του const για μεταβλητές που δεν πρόκειται να αλλάξουν τιμή βοηθά στην προστασία της συνοχής και της ορθότητας του κώδικα.

Η τοπική εμβέλεια (block scope) είναι μια έννοια που αναφέρεται στο πού μια μεταβλητή είναι ορατή και προσπελάσιμη. Στη JavaScript, η τοπική εμβέλεια προέκυψε με την εισαγωγή των λέξεων-κλειδιών let και const.

Όταν μια μεταβλητή δηλώνεται με let ή const μέσα σε ένα μπλοκ (π.χ. μέσα σε ένα σώμα ενός if statement ή ενός loop), η μεταβλητή είναι ορατή μόνο μέσα σε αυτό το μπλοκ. Δηλαδή, μπορούμε να προσπελάσουμε και να χρησιμοποιήσουμε τη μεταβλητή μόνο εντός του ίδιου μπλοκ και όχι σε άλλα μπλοκ που το περικλείουν.

Ας δούμε ένα παράδειγμα για καλύτερη κατανόηση:

function example() {
  if (true) {
    let x = 10; // Η μεταβλητή x έχει τοπική εμβέλεια μέσα στο if statement
    console.log(x); // Εκτύπωση της τιμής της μεταβλητής x
  }

  console.log(x); // Σφάλμα: Η μεταβλητή x δεν είναι ορατή εδώ
}

example();

Στο παραπάνω παράδειγμα, η μεταβλητή x δηλώνεται με let μέσα στο σώμα του if statement. Αυτή η μεταβλητή έχει τοπική εμβέλεια μόνο μέσα στο if statement, οπότε μπορούμε να την προσπελάσουμε και να τη χρησιμοποιήσουμε μόνο εκεί. Όταν προσπαθούμε να εκτυπώσουμε την τιμή της μεταβλητής x εκτός του if statement, λαμβάνουμε ένα σφάλμα, καθώς η μεταβλητή δεν είναι ορατή σε αυτό το σημείο.

Η τοπική εμβέλεια με το let και το const βοηθά στην προστασία του κώδικα και την αποφυγή συγκρούσεων μεταξύ μεταβλητών που ορίζονται σε διαφορετικά μπλοκ. Αυτό καθιστά τον κώδικα πιο καθαρό, προβλέψιμο και ευανάγνωστο.

[adinserter block=”4″]

Η δήλωση μιας μεταβλητής με την ίδια ονομασία μεταξύ διαφορετικών let δηλώσεων στον ίδιο σκοπό (scope) δεν επιτρέπεται. Δηλαδή, δεν μπορούμε να ξαναδηλώσουμε μια μεταβλητή με let στον ίδιο σκοπό.

Ας δούμε ένα παράδειγμα για καλύτερη κατανόηση:

let x = 10;
let x = 20; // Σφάλμα: Απαγορεύεται η ξαναδήλωση της μεταβλητής x με let

console.log(x);

Στο παραπάνω παράδειγμα, προσπαθούμε να ξαναδηλώσουμε την μεταβλητή x με let. Αυτό θα προκαλέσει ένα σφάλμα, καθώς η μεταβλητή x έχει ήδη οριστεί μέσω μιας προηγούμενης let δήλωσης. Οι μεταβλητές που ορίζονται με let έχουν τοπική εμβέλεια και δεν μπορούν να ξαναδηλωθούν μέσα στον ίδιο σκοπό.

Παρόμοια, η ξαναδήλωση μιας μεταβλητής με const στον ίδιο σκοπό επίσης δεν επιτρέπεται:

const y = 5;
const y = 10; // Σφάλμα: Απαγορεύεται η ξαναδήλωση της μεταβλητής y με const

console.log(y);

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

Είναι σημαντικό να αποφεύγουμε την ξαναδήλωση μιας μεταβλητής στον ίδιο σκοπό, καθώς αυτό μπορεί να οδηγήσει σε προβλήματα και σύγχυση στον κώδικα.

21 Αυγούστου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων