46. JavaScript Const

JS Const


ECMAScript 2015

Το ES2015 εισήγαγε δύο σημαντικές νέες λέξεις-κλειδιά JavaScript: let και const.

Οι μεταβλητές που ορίζονται με const συμπεριφέρονται σαν letμεταβλητές, εκτός από το ότι δεν μπορούν να εκχωρηθούν εκ νέου:

Παράδειγμα

const PI = 3.141592653589793;
PI = 3.14;      // This will give an error
PI = PI + 10;   // This will also give an error

Δοκιμάστε τον εαυτό σας »


Πεδίο αποκλεισμού

Η δήλωση μιας μεταβλητής με const είναι παρόμοια με την let όταν πρόκειται για πεδίο μπλοκ.

Το x που δηλώνεται στο μπλοκ, σε αυτό το παράδειγμα, δεν είναι το ίδιο με το x δηλωμένο έξω από το μπλοκ:

Παράδειγμα

var x = 10;
// Here x is 10
{
  const x = 2;
  // Here x is 2
}
// Here x is 10

Δοκιμάστε τον εαυτό σας »

Μπορείτε να μάθετε περισσότερα σχετικά με το πεδίο εφαρμογής μπλοκ στο προηγούμενο κεφάλαιο: JavaScript Let .


Αντιστοίχιση όταν δηλώνεται

Οι μεταβλητές const JavaScript πρέπει να έχουν μια τιμή όταν δηλώνονται:

Λανθασμένο

const PI;
PI = 3.14159265359;

Σωστό

const PI = 3.14159265359;

Δεν είναι πραγματικές σταθερές

Η λέξη-κλειδί const είναι λίγο παραπλανητική.

ΔΕΝ ορίζει μια σταθερή τιμή. Ορίζει μια σταθερή αναφορά σε μια τιμή.

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


Πρωταρχικές τιμές

Εάν εκχωρήσουμε μια πρωταρχική τιμή σε μια σταθερά, δεν μπορούμε να αλλάξουμε την πρωταρχική τιμή: 

Παράδειγμα

const PI = 3.141592653589793;
PI = 3.14;      // This will give an error
PI = PI + 10;   // This will also give an error

Δοκιμάστε τον εαυτό σας »


Τα Constant αντικείμενα μπορούν να αλλάξουν

Μπορείτε να αλλάξετε τις ιδιότητες ενός σταθερού αντικειμένου:

Παράδειγμα

// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};

// You can change a property:
car.color = "red";

// You can add a property:
car.owner = "Johnson";

Δοκιμάστε τον εαυτό σας »

Αλλά δεν μπορείτε να ξανα-εκχωρήσετε ένα constant αντικείμενο:

Παράδειγμα

const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"};    // ERROR

Δοκιμάστε τον εαυτό σας »


Οι constant πίνακες μπορούν να αλλάξουν

Μπορείτε να αλλάξετε τα στοιχεία ενός constant πίνακα:

Παράδειγμα

// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];

// You can change an element:
cars[0] = "Toyota";

// You can add an element:
cars.push("Audi");

Δοκιμάστε τον εαυτό σας »

Αλλά δεν μπορείτε να ξανα-εκχωρήσετε μια σταθερή διάταξη:

Παράδειγμα

const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];    // ERROR

Δοκιμάστε τον εαυτό σας »


Υποστήριξη προγράμματος περιήγησης

Η λέξη-κλειδί const δεν υποστηρίζεται στον Internet Explorer 10 ή παλαιότερη έκδοση.

Ο παρακάτω πίνακας ορίζει τις πρώτες εκδόσεις του προγράμματος περιήγησης με πλήρη υποστήριξη για τη λέξη-κλειδί const:

Chrome 49IE / Edge 11Firefox 36Safari 10Opera 36
Mar, 2016Oct, 2013Feb, 2015Sep, 2016Mar, 2016

Επαναδήλωση

Η επαναδήλωση μιας JavaScript μεταβλητής var επιτρέπεται οπουδήποτε σε ένα πρόγραμμα:

Παράδειγμα

var x = 2;    //  Allowed
var x = 3;    //  Allowed
x = 4;        //  Allowed

Δεν επιτρέπεται η επαναδήλωση ή επανεκχώρηση μιας υφιστάμενης varή μιας letμεταβλητής σε constστο ίδιο πεδίο ή στο ίδιο μπλοκ:

Παράδειγμα

var x = 2;         // Allowed
const x = 2;       // Not allowed
{
  let x = 2;     // Allowed
  const x = 2;   // Not allowed
}

Δεν επιτρέπεται η επαναδήλωση ή επανεκχώρηση μιας υπάρχουσας constμεταβλητής, στο ίδιο πεδίο ή στο ίδιο μπλοκ:

Παράδειγμα

const x = 2;       // Allowed
const x = 3;       // Not allowed
x = 3;             // Not allowed
var x = 3;         // Not allowed
let x = 3;         // Not allowed

{
  const x = 2;   // Allowed
  const x = 3;   // Not allowed
  x = 3;         // Not allowed
  var x = 3;     // Not allowed
  let x = 3;     // Not allowed
}

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

Παράδειγμα

const x = 2;       // Allowed

{
  const x = 3;   // Allowed
}

{
  const x = 4;   // Allowed
}

Ανύψωση (Hoisting)

Οι μεταβλητές που ορίζονται με var υψώνονται στην κορυφή (αν δεν ξέρετε περί ανύψωσης, διαβάστε το κεφαλαίο JS Hoisting ).

Μπορείτε να χρησιμοποιήσετε μια var μεταβλητή πριν δηλωθεί:

Παράδειγμα

carName = "Volvo";    // You CAN use carName here
var carName;

Δοκιμάστε τον εαυτό σας »

Οι μεταβλητές που ορίζονται με const δεν ανυψώνονται στην κορυφή.

Μια const μεταβλητή δεν μπορεί να χρησιμοποιηθεί πριν δηλωθεί:

Παράδειγμα

carName = "Volvo";    // You can NOT use carName here
const carName = "Volvo";

Days
Hours
Minutes

46. JavaScript Const

Κοινοποίηση

Share on facebook
Share on twitter

Ακολουθήστε μας

Αρέσει σε %d bloggers: