Heim > Web-Frontend > js-Tutorial > Anmerkungen zur Javascript-Studie: Funktionen (1): Funktionsdeklaration und Funktionsausdruck_Grundkenntnisse

Anmerkungen zur Javascript-Studie: Funktionen (1): Funktionsdeklaration und Funktionsausdruck_Grundkenntnisse

WBOY
Freigeben: 2016-05-16 16:43:18
Original
1336 Leute haben es durchsucht

Funktionsdeklaration

function foo() {}
Nach dem Login kopieren

Funktion foo wird angehoben, bevor das gesamte Programm ausgeführt wird, sodass sie im gesamten Bereich verfügbar ist, in dem die Funktion foo definiert ist. Es gibt kein Problem, selbst wenn es aufgerufen wird, bevor die Funktion definiert ist.

foo(); // Works because foo was created before this code runs
function foo() {}
Nach dem Login kopieren

Da ich vorhabe, einen speziellen Artikel über den Umfang zu schreiben, werde ich hier nicht auf Details eingehen.

Funktionsausdruck

Für Funktionsdeklarationen ist der Name der Funktion erforderlich, für Funktionsausdrücke ist er jedoch optional. Daher werden anonyme Funktionsausdrücke und benannte Funktionsausdrücke angezeigt. Wie folgt:

Funktionsdeklaration: function functionName (){ }
Funktionsdeklaration: function functionName[optional](){ }
Dann weiß ich, dass es sich um einen Funktionsausdruck handeln muss, wenn kein Funktionsname vorhanden ist. Wie kann ich jedoch beurteilen, ob ein Funktionsname vorhanden ist?
Javascript legt fest, dass es sich um einen Funktionsausdruck handelt, wenn der gesamte Funktionskörper Teil eines Ausdrucks ist, andernfalls um eine Funktionsdeklaration. Das Folgende ist der Ausdruck:

var fuc = foo(){}
Nach dem Login kopieren

Lassen Sie uns noch ein paar extreme Ausdrucksbeispiele nennen:

!function foo(){}
true && function foo(){}
Nach dem Login kopieren

Die obige Anweisung dient nur zur Unterscheidung von Funktionsausdrücken und wird im Allgemeinen nicht so geschrieben. Dann nutzen Sie ein Vergleichsbeispiel, um den Effekt zu sehen:

foo1();//foo1 is not defined 
foo2();//works because foo2 was created before this code runs
!function foo1() {
  alert('foo1 works');
};
function foo2() {
  alert('foo2 works');
};
Nach dem Login kopieren

Anonymer Funktionsausdruck

var foo = function() {};
Nach dem Login kopieren

Das obige Beispiel weist der Variablen foo eine anonyme Funktion zu.

foo; // 'undefined'
foo(); // this raises a TypeError
var foo = function() {};
Nach dem Login kopieren

Da var eine Deklaration ist, wird die Variable foo hier angehoben, sodass die Variable foo bei der Ausführung des Programms aufrufbar ist.
Da die Zuweisungsanweisung jedoch erst zur Laufzeit wirksam wird, ist der Wert der Variablen foo undefiniert.

Benannter Funktionsausdruck

Ein weiterer Diskussionspunkt ist die Zuweisung benannter Funktionen.

var foo = function bar() {
  bar(); // Works
};
bar(); // ReferenceError
Nach dem Login kopieren

Hier wird die benannte Funktion bar der Variablen foo zugewiesen, sodass sie außerhalb der Funktionsdeklaration nicht sichtbar ist, aber dennoch innerhalb der bar-Funktion aufgerufen werden kann. Dies liegt an der Art und Weise, wie Javascript benannte Funktionen verarbeitet. Der Name einer Funktion ist im Gültigkeitsbereich innerhalb der Funktion immer gültig.

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