JavaScript Let
- Vorherige Seite JS Variable
- Nächste Seite JS Const
ECMAScript 2015
ECMAScript 2015 introduced two important new JavaScript keywords:let
und const
.
These two keywords in JavaScript provide block scope (Block Scope) variables (and constants).
Before ES2015, JavaScript had only two types of scope:globaler KontextundFunktionskontext.
globaler Kontext
GlobalVariables declared (outside a function) haveglobaler Kontext.
Beispiel
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.
Funktionskontext
LocalVariables declared (inside a function) haveFunktionskontext.
Beispiel
// 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
durch var
Variables declared with the keyword do not have blockScope.
In a block {} Variables declared internally can be accessed from outside the block.
Beispiel
{ var x = 10; } // Here x can be used
Before ES2015, JavaScript did not have block scope.
You can use let
The keyword declares variables with block scope.
In a block {} Variables declared internally cannot be accessed from outside the block:
Beispiel
{ let x = 10; } // Here x cannot be used
Re-declaring Variables
Using var
The keyword re-declaring a variable can cause problems.
Declaring a variable again within a block also declares a variable outside the block:
Beispiel
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.
Declaring a variable again within a block does not declare a variable outside the block:
Beispiel
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 completely supported let
Browser Versions of Keywords:
Chrome 49 | IE / Edge 12 | Firefox 44 | Safari 11 | Opera 36 |
März 2016 | Juli 2015 | Januar 2015 | September 2017 | März 2016 |
Durchlaufkontext
Verwenden Sie im Durchlauf var
:
Beispiel
var i = 7; for (var i = 0; i < 10; i++) { // Einige Anweisungen } // Hier ist i 10
Verwenden Sie im Durchlauf let
:
Beispiel
let i = 7; for (let i = 0; i < 10; i++) { // Einige Anweisungen } // Hier ist i 7
Im ersten Beispiel wird die Variable, die im Durchlauf verwendet wird, mit var
wurde die Variable außerhalb des Durchlaufs neu deklariert.
Im zweiten Beispiel wird die Variable, die im Durchlauf verwendet wird, mit let
wurde keine Variable außerhalb des Durchlaufs neu deklariert.
Wenn Sie im Durchlauf mit let
Wenn Sie die Variable i deklariert haben, ist die Variable i nur im Durchlauf sichtbar.
Funktionskontext
Wenn Sie Variablen im Funktionskontext deklarieren, verwenden Sie var
und let
sehr ähnlich.
Sie haben alleFunktionskontext:
function myFunction() { var carName = "porsche"; // Funktionskontext } function myFunction() { let carName = "porsche"; // Funktionskontext }
globaler Kontext
Wenn eine Deklaration außerhalb eines Blocks erfolgt, dann var
und let
sehr ähnlich.
Sie haben alleglobaler Kontext:
var x = 10; // globaler Kontext let y = 6; // globaler Kontext
Globale Variablen in HTML
Im Falle von JavaScript ist der globale Kontext die JavaScript-Umgebung.
In HTML ist der globale Kontext das window-Objekt.
durch var
Globale Variablen, die durch Schlüsselwörter definiert werden, gehören zum window-Objekt:
Beispiel
var carName = "porsche"; // Diese Codezeile kann window.carName verwenden
durch let
Globale Variablen, die durch Schlüsselwörter definiert werden, gehören nicht zum window-Objekt:
Beispiel
let carName = "porsche"; // Diese Codezeile kann window.carName nicht verwenden
Neuadeklaration
Erlaubt an jedem Ort im Programm zu verwenden var
Neuadeklaration von JavaScript-Variablen:
Beispiel
var x = 10; // 现在,x 为 10 var x = 6; // 现在,x 为 6
in derselben Ebene oder im gleichen Block durch let
die Neudeklaration einer var
Variablen sind nicht erlaubt:
Beispiel
var x = 10; // 允许 let x = 6; // 不允许 { var x = 10; // 允许 let x = 6; // 不允许 }
in derselben Ebene oder im gleichen Block durch let
die Neudeklaration einer let
Variablen sind nicht erlaubt:
Beispiel
let x = 10; // Erlaubt let x = 6; // 不允许 { let x = 10; // Erlaubt let x = 6; // 不允许 }
in derselben Ebene oder im gleichen Block durch var
die Neudeklaration einer let
Variablen sind nicht erlaubt:
Beispiel
let x = 10; // Erlaubt var x = 6; // Nicht erlaubt { let x = 10; // Erlaubt var x = 6; // Nicht erlaubt }
in verschiedenen Bereichen oder Blöcken durch let
Die Neudeklaration von Variablen ist erlaubt:
Beispiel
let x = 6; // Erlaubt { let x = 7; // Erlaubt } { let x = 8; // Erlaubt }
Hoisting
durch var
deklarierte Variablen werdenHoistingnach oben gehoben werden. Wenn Sie nicht wissen, was Hoisting ist, lernen Sie unser Kapitel über Hoisting.
Sie können Variablen verwenden, bevor sie deklariert werden:
Beispiel
// Hier können Sie carName verwenden var carName;
durch let
definierte Variablen werden nicht nach oben gehoben.
in der Deklaration let
Das Verwenden der Variablen vor der Deklaration führt zu einem ReferenceError.
Variablen sind von Anfang an im "temporarily dead zone" des Blocks bis zur Deklaration
Beispiel
// Hier können Sie carName nicht verwenden let carName;
- Vorherige Seite JS Variable
- Nächste Seite JS Const