Let JavaScript
- Προηγούμενη σελίδα JS μεταβλητές
- Επόμενη σελίδα JS Const
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;
- Προηγούμενη σελίδα JS μεταβλητές
- Επόμενη σελίδα JS Const