Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Variablenförderung und Funktionsförderung in js

Detaillierte Erläuterung der Variablenförderung und Funktionsförderung in js

小云云
小云云Original
2018-02-06 11:44:591006Durchsuche

Dieser Artikel bringt Ihnen einen Artikel über Variablenförderung und Funktionsförderung basierend auf js (ausführliche Erklärung). Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Herausgeber und schauen wir uns das an. Ich hoffe, es kann allen helfen.

1. Variablenförderung

Vor ES6 hatte JavaScript keinen Gültigkeitsbereich auf Blockebene (ein Paar geschweifte Klammern {} ist ein Bereich auf Blockebene, nur globaler Bereich und Funktionsbereich. Durch das Hochziehen von Variablen wird eine Variablendeklaration an den Anfang ihres Gültigkeitsbereichs verschoben.

Das Beispiel des vorherigen Lebenslaufs ist:


console.log(global); // undefined
var global = 'global';
console.log(global); // global

function fn () {
console.log(a); // undefined
var a = 'aaa';
console.log(a); // aaa
}
fn();

Der Grund, warum das obige Druckergebnis tatsächlich auf die variable Förderung von js zurückzuführen ist , der obige Code wird wie folgt ausgeführt:


var global; // 变量提升,全局作用域范围内,此时只是声明,并没有赋值
console.log(global); // undefined
global = 'global'; // 此时才赋值
console.log(global); // 打印出global

function fn () {
var a; // 变量提升,函数作用域范围内
console.log(a);
a = 'aaa';
console.log(a);
}
fn();

2. Funktionsverbesserung

js Es gibt zwei Möglichkeiten, Funktionen zu erstellen: Funktionsdeklaration und Funktionsliteral. Das Hochziehen von Funktionen gibt es nur in Funktionsdeklarationen! Zum Beispiel:


console.log(f1); // function f1() {}  
console.log(f2); // undefined 
function f1() {}
var f2 = function() {}

Der Grund für die oben gedruckten Ergebnisse liegt darin, dass die Funktionsförderung in js dazu führt, dass der Code tatsächlich wie folgt ausgeführt wird:


function f1() {} // 函数提升,整个代码块提升到文件的最开始<br>console.log(f1);  
console.log(f2);  
var f2 = function() {}

Fazit: Wenn du es gekonnt beherrschen willst, kannst du noch mehr Übungen machen, testen:


console.log(f1()); 
console.log(f2);  
function f1() {console.log(&#39;aa&#39;)}
var f2 = function() {}


(function() {
console.log(a);
a = &#39;aaa&#39;;
var a = &#39;bbb&#39;;
console.log(a);
})();

Verwandte Empfehlungen:

Detaillierte Erläuterung der Javascript-Variablenförderung

js Variable Detaillierte Erläuterung des Hebens und Beispiele für das Vorparsen von Funktionsdeklarationen

Vertiefendes Verständnis des Umfangs und des Hebens von Variablen (Heben) in JS

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Variablenförderung und Funktionsförderung in js. 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