Let JavaScript

ECMAScript 2015

ES2015 introduced two important new JavaScript keywords:let και const.

These two keywords in JavaScript provide block scope (Block Scope) variables (and constants).

Before ES2015, JavaScript had only two types of scope:παγκόσμια περιοχήκαιτομέας συνάρτησης.

παγκόσμια περιοχή

GlobalVariables declared outside (function) haveπαγκόσμια περιοχή.

Παράδειγμα

var carName = "porsche";
// The code here can use carName
function myFunction() {
  // The code here can also use carName
}

Προσπαθήστε το προσωπικά

GlobalVariables can be accessed at any location in the JavaScript program.

τομέας συνάρτησης

LocalVariables declared within (function) haveτομέας συνάρτησης.

Παράδειγμα

// The code here cannot use carName
function myFunction() {
  var carName = "porsche";
  // code here CAN use carName
}
// The code here cannot use carName

Προσπαθήστε το προσωπικά

LocalVariables can only be accessed within the function in which they are declared.

JavaScript block scope

μέσω var Variables declared with the keyword do not have blockScope.

Within a block {} Variables declared internally can be accessed from outside the block.

Παράδειγμα

{ 
  var x = 10; 
}
// Here x can be used

Before ES2015, JavaScript did not have block scope.

Can be used let The keyword declares variables with block scope.

Within a block {} Variables declared internally are not accessible from outside the block:

Παράδειγμα

{ 
  let x = 10;
}
// Here x cannot be used

Re-declaring variables

Using var The keyword re-declaring a variable can cause problems.

Re-declaring a variable within a block also re-declares the variable outside the block:

Παράδειγμα

var x = 10;
// Here x is 10
{ 
  var x = 6;
  // Here x is 6
}
// Here x is 6

Προσπαθήστε το προσωπικά

Using let The keyword re-declaring a variable can solve this problem.

Re-declaring a variable within a block does not re-declare the variable outside the block:

Παράδειγμα

var x = 10;
// Here x is 10
{ 
  let x = 6;
  // Here x is 6
}
// Here x is 10

Προσπαθήστε το προσωπικά

Browser support

Internet Explorer 11 or earlier versions do not fully support let keywords.

The following table defines the first fully supported let Browser version of keywords:

Chrome 49 IE / Edge 12 Firefox 44 Safari 11 Opera 36
Μάρτιος 2016 Ιούλιος 2015 Ιανουάριος 2015 Σεπτέμβριος 2017 Μάρτιος 2016

τομέας βρόχου

χρησιμοποιείται στον βρόχο var:

Παράδειγμα

var i = 7;
for (var i = 0; i < 10; i++) {
  // Κάποια διατάξεις
}
// Εδώ, i είναι 10

Προσπαθήστε το προσωπικά

χρησιμοποιείται στον βρόχο let:

Παράδειγμα

let i = 7;
for (let i = 0; i < 10; i++) {
  // Κάποια διατάξεις
}
// Εδώ i είναι 7

Προσπαθήστε το προσωπικά

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

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

Αν χρησιμοποιηθεί στον βρόχο let Αν δηλωθεί η μεταβλητή i, τότε μόνο μέσα στον βρόχο, η μεταβλητή i είναι ορατή.

τομέας συνάρτησης

Όταν δηλώνεται μεταβλητή μέσα σε συνάρτηση, χρησιμοποιείται var και let είναι επίσης πολύ παρόμοια.

όλα αυτά έχουντομέας συνάρτησης:

function myFunction() {
  var carName = "porsche";   // τομέας συνάρτησης
}
function myFunction() {
  let carName = "porsche";   // τομέας συνάρτησης
}

παγκόσμια περιοχή

Αν ανακηρυχθεί έξω από το βρόχο, τότε var και let είναι επίσης πολύ παρόμοια.

όλα αυτά έχουνπαγκόσμια περιοχή:

var x = 10;       // παγκόσμια περιοχή
let y = 6;       // παγκόσμια περιοχή

Παγκόσμιες μεταβλητές στο HTML

Στη χρήση JavaScript, η παγκόσμια περιοχή είναι το περιβάλλον JavaScript.

Στο HTML, η παγκόσμια περιοχή είναι το αντικείμενο window.

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

Παράδειγμα

var carName = "porsche";
// Αυτός ο κώδικας μπορεί να χρησιμοποιηθεί window.carName

Προσπαθήστε το προσωπικά

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

Παράδειγμα

let carName = "porsche";
// Αυτή ο κώδικας δεν μπορεί να χρησιμοποιηθεί window.carName

Προσπαθήστε το προσωπικά

Αναδιατύπωση

επιτρέπεται να χρησιμοποιηθεί σε οποιαδήποτε θέση του προγράμματος var Αναδιατύπωση μεταβλητών JavaScript:

Παράδειγμα

var x = 10;
// τώρα, x είναι 10
var x = 6;
// τώρα, x είναι 6

Προσπαθήστε το προσωπικά

Στο ίδιο ορίζοντα, ή στο ίδιο μπλοκ, μέσω let Η επανήλωση μιας var Οι μεταβλητές δεν επιτρέπονται:

Παράδειγμα

var x = 10;       // επιτρεπόμενο
let x = 6;       // δυσάρεστο
{
  var x = 10;   // επιτρεπόμενο
  let x = 6;   // δυσάρεστο
}

Στο ίδιο ορίζοντα, ή στο ίδιο μπλοκ, μέσω let Η επανήλωση μιας let Οι μεταβλητές δεν επιτρέπονται:

Παράδειγμα

let x = 10;       // Επιτρέπεται
let x = 6;       // δυσάρεστο
{
  let x = 10;   // Επιτρέπεται
  let x = 6;   // δυσάρεστο
}

Στο ίδιο ορίζοντα, ή στο ίδιο μπλοκ, μέσω var Η επανήλωση μιας let Οι μεταβλητές δεν επιτρέπονται:

Παράδειγμα

let x = 10;       // Επιτρέπεται
var x = 6;       // Δεν επιτρέπεται
{
  let x = 10;   // Επιτρέπεται
  var x = 6;   // Δεν επιτρέπεται
}

Σε διαφορετικούς ορίζοντες ή μπλοκ, μέσω let Η επανήλωση της μεταβλητής είναι επιτρεπόμενη:

Παράδειγμα

let x = 6;       // Επιτρέπεται
{
  let x = 7;   // Επιτρέπεται
}
{
  let x = 8;   // Επιτρέπεται
}

Προσπαθήστε το προσωπικά

Ανύψωση

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

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

Παράδειγμα

// Εδώ, μπορείτε να χρησιμοποιήσετε το carName
var carName;

Προσπαθήστε το προσωπικά

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

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

Οι μεταβλητές παραμένουν στην "προσωρινή νεκρή区分" από την αρχή του μπλοκ μέχρι τη δήλωση τους:

Παράδειγμα

// Εδώ, δεν μπορείτε να χρησιμοποιήσετε το carName
let carName;