Heim >Web-Frontend >js-Tutorial >Funktionsdeklaration und Funktionsausdruck in JavaScript

Funktionsdeklaration und Funktionsausdruck in JavaScript

PHPz
PHPzOriginal
2016-05-16 15:57:031394Durchsuche

Bisher haben wir nicht zwischen Funktionsdeklarationen und Funktionsausdrücken unterschieden. Tatsächlich behandelt der Parser Funktionsdeklarationen und Funktionsausdrücke nicht gleich, wenn er Daten in die Ausführungsumgebung lädt. Der Parser liest zunächst die Funktionsdeklaration und macht sie verfügbar (zugänglich), bevor er Code ausführt. Der Funktionsausdruck wird erst dann tatsächlich interpretiert und ausgeführt, wenn der Parser die Codezeile erreicht, in der er sich befindet. Das folgende Beispiel:

Der Code lautet wie folgt:

alert(sum(10,10));
function sum(num1,num2)
{
    return num1+num2;
}

Der obige Code kann korrekt ausgeführt werden, da er vor dem Start des Codes ausgeführt wird Beim Ausführen wurden die Parser-Funktionsdeklarationen gelesen und der Ausführungsumgebung durch einen Prozess namens „Funktionsdeklaration-Heben“ hinzugefügt. Beim Auswerten von Code deklariert die JavaScript-Engine beim ersten Durchgang Funktionen und platziert sie oben im Quellbaum. Selbst wenn also der Code, der die Funktion deklariert, hinter dem Code liegt, der sie aufruft, kann die JavaScript-Engine die Funktionsdeklaration an die Spitze heben. Wenn, wie im folgenden Beispiel gezeigt, die obige Funktionsdeklaration in einen äquivalenten Funktionsausdruck geändert wird, tritt bei der Ausführung ein Fehler auf.

Der Code lautet wie folgt:

alert(sum(10,10));
var sum=function(num1,num2)
{
    return num1+num2;
};

Der obige Code verursacht beim Ausführen einen Fehler, da die Funktion lokalisiert ist in einer Initialisierungsanweisung und nicht in einer Funktionsdeklaration. Mit anderen Worten: Die Variablensumme enthält erst in der Anweisung, in der die Funktion ausgeführt wird, einen Verweis auf die Funktion. Da außerdem die erste Codezeile einen „unerwarteten Bezeichner“-Fehler verursacht, wird sie tatsächlich nicht ausgeführt die nächste Zeile.

Mit Ausnahme der Tatsache, dass während der Deklaration über Variablen auf die Funktion zugegriffen werden kann, sind die Syntax der Funktionsdeklaration und des Funktionsausdrucks tatsächlich gleichwertig . von.

Hinweis: Sie können die Funktionsdeklaration und den Funktionsausdruck auch gleichzeitig aufrufen, z. B. var sum=function sum(){}. Diese Syntax führt jedoch zu Fehlern in Safari.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für alle hilfreich sein, die Javascript lernen.

Weitere verwandte Tutorials finden Sie unter Javascript-Tutorial

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