Heim >Web-Frontend >js-Tutorial >Erfahren Sie mehr über den es6-Bereich

Erfahren Sie mehr über den es6-Bereich

青灯夜游
青灯夜游nach vorne
2019-11-26 14:47:331935Durchsuche

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.

Erfahren Sie mehr über den es6-Bereich

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 动态作用域
4 Sie können nicht direkt auf Daten in der lokalen Umgebung zugreifen.

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

zugegriffen werden, sondern durch Retun oder Closing.
// 此处不能调用 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() //Volvo

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

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 entschieden

let 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

Dieser Artikel stammt aus der Rubrik JS-Tutorial

, 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen