Heim >Web-Frontend >js-Tutorial >js – Umfang der Variablen

js – Umfang der Variablen

巴扎黑
巴扎黑Original
2017-07-20 14:12:52956Durchsuche

Als Neuling fühlt es sich gut an, jeden Tag etwas zu lernen. Als ich heute etwas über Abschlüsse lernte, sah ich die beiden Konzepte Scope und Scope Chain. Als Anfänger mit Ambitionen habe ich das Gefühl, dass es notwendig ist, sie im Detail zu verstehen.

Umfang der Variablen

Was JS-Variablen betrifft, gibt es globale Variablen und lokale Variablen. Hier reicht es meiner Meinung nach, es wörtlich zu nehmen... Hier ist ein Beispiel

var message = "今天我做的糯米蒸排骨"; //定义一个全局变量function doL(){

  var ss = "侠客行很好看";      //定义一个局部变量

  alert(message);             //输出"今天我做的糯米蒸排骨",在函数中可以引用到全局变量

  function alertDo(){

    alert(ss);

  }

  alertDo();             //输出"侠客行很好看",这就涉及变量的作用域了

};doL();
alertDo();              //没法输出  alertDo is not definedalert(message);         //可以输出"今天我做的糯米蒸排骨"

Hier gibt es zwei interessante Stellen

1 Ohne var deklariert, deklarieren wir tatsächlich eine globale Variable. Siehe unten, num ist eine globale Variable,

mum

= 1; eigentlich eine Attributzuweisungsoperation. Zuerst wird versucht, mum in der aktuellen Bereichskette aufzulösen (falls in einer Methode deklariert, stellt die aktuelle Bereichskette den globalen Bereich und den lokalen Bereich der Methode usw. dar). Bereichskette Wenn

mum

in der Bereichskette gefunden wird, wird die Attributzuweisung mum durchgeführt. Wenn mum nicht gefunden wird, wird es dem globalen zugewiesen Objekt (d. h. die aktuelle Bereichskette) Erstellen Sie das Attribut mum im Objekt der obersten Ebene (z. B. Fensterobjekt) und weisen Sie einen Wert zu. Achtung! Es deklariert keine globale Variable, sondern erstellt eine Eigenschaft des globalen Objekts. Da die Variablendeklaration über ein eigenes nicht löschbares Attribut verfügt, vergleichen Sie var num = 1 mit num = 1. Ersteres ist eine Variablendeklaration mit dem nicht löschbaren Attribut und kann daher nicht gelöscht werden , sodass es aus der globalen Variablen gelöscht werden kann.

2. Die Variablendeklaration wird an den Anfang der Funktion verschoben. Tatsächlich wurde sie schon einmal angetroffen
var num =1;
mum = 1;

    var scope="global";  function t(){  
        console.log(scope);  var scope="local"  
        console.log(scope);  
    }  
    t();
Es wird zuerst „undefiniert“ ausgegeben, dann „scope“. Es werden Variablen im Voraus deklariert und lokale Variablen überschrieben, was der folgenden Situation entspricht

Das obige ist der detaillierte Inhalt vonjs – Umfang der Variablen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn