Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const x = 5;
console.log(x); // Εκτύπωση της τιμής της μεταβλητής x
x = 10; // Σφάλμα: Δεν επιτρέπεται η αλλαγή της τιμής της μεταβλητής x
const x = 5; console.log(x); // Εκτύπωση της τιμής της μεταβλητής x x = 10; // Σφάλμα: Δεν επιτρέπεται η αλλαγή της τιμής της μεταβλητής x
const x = 5;
console.log(x); // Εκτύπωση της τιμής της μεταβλητής x

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

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

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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
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
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, δημιουργούμε μια σταθερή αναφορά προς τον πίνακα. Αυτό σημαίνει ότι δεν μπορούμε να αναθέσουμε μια νέα τιμή στην μεταβλητή του πίνακα, αλλά μπορούμε να τροποποιήσουμε τα στοιχεία του πίνακα.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const numbers = [1, 2, 3];
console.log(numbers); // Εκτύπωση του πίνακα numbers
numbers[0] = 10; // Επιτρέπεται η τροποποίηση του στοιχείου του πίνακα
console.log(numbers); // Εκτύπωση του ανανεωμένου πίνακα numbers
numbers = [4, 5, 6]; // Σφάλμα: Δεν επιτρέπεται η αναθεσμένη τιμή στην μεταβλητή του πίνακα
const numbers = [1, 2, 3]; console.log(numbers); // Εκτύπωση του πίνακα numbers numbers[0] = 10; // Επιτρέπεται η τροποποίηση του στοιχείου του πίνακα console.log(numbers); // Εκτύπωση του ανανεωμένου πίνακα numbers numbers = [4, 5, 6]; // Σφάλμα: Δεν επιτρέπεται η αναθεσμένη τιμή στην μεταβλητή του πίνακα
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, δημιουργούμε μια σταθερή αναφορά προς το αντικείμενο. Αυτό σημαίνει ότι δεν μπορούμε να αλλάξουμε την αναφορά προς ένα νέο αντικείμενο, αλλά μπορούμε να τροποποιήσουμε τις ιδιότητες του αντικειμένου.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const person = { name: 'John', age: 30 };
console.log(person); // Εκτύπωση του αντικειμένου person
person.name = 'Jane'; // Επιτρέπεται η αλλαγή της ιδιότητας name του αντικειμένου
console.log(person); // Εκτύπωση του ανανεωμένου αντικειμένου person
person = { name: 'Jane', age: 35 }; // Σφάλμα: Δεν επιτρέπεται η αναθεσμένη τιμή στην μεταβλητή του αντικειμένου
const person = { name: 'John', age: 30 }; console.log(person); // Εκτύπωση του αντικειμένου person person.name = 'Jane'; // Επιτρέπεται η αλλαγή της ιδιότητας name του αντικειμένου console.log(person); // Εκτύπωση του ανανεωμένου αντικειμένου person person = { name: 'Jane', age: 35 }; // Σφάλμα: Δεν επιτρέπεται η αναθεσμένη τιμή στην μεταβλητή του αντικειμένου
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), η μεταβλητή είναι ορατή μόνο μέσα σε αυτό το μπλοκ. Δηλαδή, μπορούμε να προσπελάσουμε και να χρησιμοποιήσουμε τη μεταβλητή μόνο εντός του ίδιου μπλοκ και όχι σε άλλα μπλοκ που το περικλείουν.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function example() {
if (true) {
let x = 10; // Η μεταβλητή x έχει τοπική εμβέλεια μέσα στο if statement
console.log(x); // Εκτύπωση της τιμής της μεταβλητής x
}
console.log(x); // Σφάλμα: Η μεταβλητή x δεν είναι ορατή εδώ
}
example();
function example() { if (true) { let x = 10; // Η μεταβλητή x έχει τοπική εμβέλεια μέσα στο if statement console.log(x); // Εκτύπωση της τιμής της μεταβλητής x } console.log(x); // Σφάλμα: Η μεταβλητή x δεν είναι ορατή εδώ } example();
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 στον ίδιο σκοπό.

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
let x = 10;
let x = 20; // Σφάλμα: Απαγορεύεται η ξαναδήλωση της μεταβλητής x με let
console.log(x);
let x = 10; let x = 20; // Σφάλμα: Απαγορεύεται η ξαναδήλωση της μεταβλητής x με let console.log(x);
let x = 10;
let x = 20; // Σφάλμα: Απαγορεύεται η ξαναδήλωση της μεταβλητής x με let

console.log(x);

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const y = 5;
const y = 10; // Σφάλμα: Απαγορεύεται η ξαναδήλωση της μεταβλητής y με const
console.log(y);
const y = 5; const y = 10; // Σφάλμα: Απαγορεύεται η ξαναδήλωση της μεταβλητής y με const console.log(y);
const y = 5;
const y = 10; // Σφάλμα: Απαγορεύεται η ξαναδήλωση της μεταβλητής y με const

console.log(y);

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

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

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