Heim > Web-Frontend > js-Tutorial > Hauptteil

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

小云云
Freigeben: 2018-02-06 11:44:59
Original
1053 Leute haben es durchsucht

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();
Nach dem Login kopieren

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();
Nach dem Login kopieren

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() {}
Nach dem Login kopieren

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() {}
Nach dem Login kopieren

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() {}
Nach dem Login kopieren


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

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage