Heim >Web-Frontend >js-Tutorial >Bereiche in JavaScript verstehen
Die Konzepte von Bereichen und Abschlüssen in Javascript sind Grundbausteine, die für die Beherrschung der Sprache notwendig sind. Sie sind die unbesungenen Helden hinter Konstruktoren, Factory-Funktionen und IIFEs, um nur einige zu nennen.
Ziel dieses Artikels ist es, den Umfang in JavaScript anhand praktischer Beispiele zu erläutern. In einem nachfolgenden Artikel werden wir JavaScript-Abschlüsse besprechen.
Der Gültigkeitsbereich bestimmt einfach, wo eine Variable für die Verwendung in einem JavaScript-Programm verfügbar ist. Grundsätzlich gibt es zwei Arten von Geltungsbereichen:
Mit dem globalen Gültigkeitsbereich wird eine Variable überall verfügbar gemacht und kann überall im Programm verwendet werden. Wenn eine Variable nicht innerhalb einer Funktion oder {geschweiften Klammern} deklariert ist, liegt sie technisch gesehen im globalen Gültigkeitsbereich.
Andererseits wird beim lokalen Gültigkeitsbereich eine Variable nur in einem bestimmten Kontext verfügbar gemacht und kann nur in diesem Kontext verwendet werden. Technisch gesehen gilt eine Variable, die innerhalb von Funktionen oder {geschweiften Klammern} deklariert wird, als lokal gültig.
let x = 3; // x (global scoped) function addXY () { let y = 5; // y (locally scoped) return x + y; // returns 8 since x is available anywhere in this program }
ECMAScript ist die standardisierte Spezifikation, die die Kernfunktionen von Skriptsprachen wie JavaScript definiert und so Konsistenz und Interoperabilität über Plattformen hinweg gewährleistet. So wie das Internationale Einheitensystem (SI) einen standardisierten Rahmen für Maße wie Meter und Kilogramm bietet, um weltweite Konsistenz sicherzustellen, legt ECMAScript die Standards für Skriptsprachen wie JavaScript fest und stellt sicher, dass sie auf verschiedenen Plattformen und Umgebungen einheitlich funktionieren.
Diese standardisierte Spezifikation für JavaScript wurde im Laufe der Editionen weiterentwickelt, wobei in jeder Version neue Funktionen und Verbesserungen hinzugefügt wurden. Zu diesen Editionen gehört ES6 (ECMAScript 2015), das ein großes Update bereitstellte, das let/const.
einführteVor ES6 wurden Variablen in JavaScript mit dem Schlüsselwort var definiert. Mit var können Variablen sowohl neu definiert als auch aktualisiert werden. Allerdings haben var-Variablen innerhalb von Funktionen nur einen lokalen Gültigkeitsbereich. Die Erweiterung des lokalen Bereichs um Snippets in {geschweifte Klammern} wurde von ES6 durch let/const eingeführt. Vereinfacht gesagt haben var-Variablen innerhalb von Funktionen einen lokalen Gültigkeitsbereich, überall sonst jedoch einen globalen Gültigkeitsbereich.
let und const führen Block-Scoping ein, das dafür sorgt, dass eine Variable nur innerhalb des nächsten Satzes von {geschweiften Klammern} verfügbar ist, in dem sie definiert wurde. Diese geschweiften Klammern können die einer for-Schleife, einer if-else-Bedingung oder einem anderen ähnlichen JavaScript-Konstrukt sein. Solche geschweiften Klammern werden auch als Codeblock bezeichnet.
Beispiele:
function addXYZ() { var x = 3; let y = 4; const z = 5; return x + y + z; // 12 } // These log undefined because var, let, and const variables are locally scoped within functions. console.log(x); console.log(y); console.log(z);
let age = 10; // global variable if (age < 18) { let letCandy = 2; // block-scoped variable console.log(`You are entitled to ${letCandy} candies`); } else { var varCandy = 4; // function-scoped variable console.log(`You are entitled to ${varCandy} candies`); } console.log(age); // Logs 10, as age is globally scoped console.log(letCandy); // Throws ReferenceError, as letCandy is block-scoped console.log(varCandy); // Logs 4, as varCandy is globally scoped outside of functions
In einem nachfolgenden Artikel werden wir lexikalische Geltungsbereiche und Abschlüsse diskutieren. Vielen Dank fürs Lesen.
Das obige ist der detaillierte Inhalt vonBereiche in JavaScript verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!