Kürzlich das Wissen über es6 neu erlernt. Basierend auf dem Video und einigen Informationen habe ich einige Anmerkungen zu meinem Verständnis gemacht und hoffe, dass es allen helfen kann.
Umfang?
Eines der grundlegendsten Modelle fast aller Programmiersprachen ist die Fähigkeit, Werte in Variablen zu speichern und diese Werte abzurufen und zu ändern Variablen und Werte abrufen Die Fähigkeit gibt dem Programm einen Status. Ohne solche Konzepte kann ein Programm zwar einige Aufgaben ausführen, diese sind jedoch äußerst eingeschränkt und nicht sehr interessant. Aber wo sollen diese Variablen gespeichert werden und wie kann man sie lesen? Um dieses Ziel zu erreichen, müssen einige Regeln formuliert werden: Umfang: Was sind die wichtigsten Arten von Bereichen?
作用域主要分为全局作用域、函数作用域、动态作用域、块级作用域;
Scope-Lookup-Regeln? 1. Die Ausführungsumgebung ist in einen globalen Bereich und einen Funktionsbereich unterteilt. 2. Jedes Mal, wenn Sie eine neue Ausführungsumgebung betreten, wird ein Bereich für die Suche nach Variablen und Funktionen erstellt.
3. Die lokale Umgebung einer Funktion kann nicht nur auf Variablen innerhalb des Funktionsbereichs zugreifen, sondern auch auf die übergeordnete Umgebung und sogar auf die globale Umgebung.对象 | 类型 |
---|---|
window | 全局作用域 |
fn | 函数作用域 |
{} | 块级作用域 |
this | 动态作用域 |
Globaler Geltungsbereich
Eine außerhalb einer Funktion definierte Variable ist eine globale Variable.
Globale Variablen haben einen globalen Geltungsbereich: Alle Skripte und Funktionen auf der Webseite können verwendet werden.
Wenn die Variable nicht innerhalb der Funktion deklariert ist (ohne das Schlüsselwort var zu verwenden), ist die Variable eine globale Variable.
// 以下实例中 carName 在函数内,但是为全局变量。 // 此处可调用 carName 变量 function myFunction() { carName = "Volvo"; // 此处可调用 carName 变量 }
Variablen, die nicht innerhalb einer Funktion oder in einem Codeblock definiert sind, existieren als Attribute von window/global. Variablen, die nicht mit var definiert sind, können gelöscht werden, globale Variablen jedoch nicht.
Funktionsumfang
Variablen, die innerhalb einer Funktion deklariert werden, werden als Funktionsumfang bezeichnet. Auf Variablen innerhalb der Funktion kann nicht direkt von außerhalb
// 此处不能调用 carName 变量 function myFunction() { let carName = "Volvo"; // 函数内可调用 carName 变量 } <!--rerurn--> function myFunction() { let carName = "Volvo"; rerurn carName; // 函数内可调用 carName 变量 } let fn=myFunction()//Volvo; <!--闭包--> function myFunction() { let carName = "Volvo"; function getName(){ console.log(carName) } return getName(); // 函数内可调用 carName 变量 } myFunction() //VolvoNach dem Login kopieren
Bereich auf Blockebene
Nach dem Erscheinen von es6 wurde mit dem Befehl „let“ ein neuer Bereich auf Blockebene hinzugefügt sicher und klar Auch wenn die äußere und die innere Schicht denselben Variablennamen verwenden, stören sie sich nicht.关于暂时性死区 * 在使用let命令声明变量之前,该变量都是不可用的。如果去调用这种情况被称为暂时性死区。 let 特性 * let不存在变量提升 * let不允许重复声明 * 拥有块级作用域 * 不可以使用window去调用 const 特性 * 定义常量 * 不允许修改常量的值 * 不允许先声明后赋值 * 同上 if(1){ let a = 1 console.log(a) }
Dynamischer Bereich kümmert sich nicht darum, wie und wo Funktionen und Bereiche deklariert werden, sondern nur darum, woher sie aufgerufen werden. Der Mechanismus ist diesem sehr ähnlich;
Tatsächlich gibt es einen lexikalischen Bereich (statischer Bereich), der sich über js hinaus erstreckt. Das Gegenteil des lexikalischen Bereichs ist der dynamische Bereich aufgerufen. Gerade entschiedenlet name='youzi'; function getName(){ let name="tuzi"; function getAge(){ console.log(name) } return getAge(); } getName() //tuzi
Lexikalischer Geltungsbereich
JavaScript verwendet den lexikalischen Geltungsbereich und der Geltungsbereich einer Funktion wird bestimmt, wenn die Funktion definiert wird.<!-- 这段代码执行就是按照词法作用域去执行的。在函数定义时已经被决定了 --> let name='youzi'; function getName(){ console.log(name) } function getAge(){ let name='tuzi'; getName() } getAge() //youzi
, willkommen zum Lernen!
Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über den es6-Bereich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!