Heim > Web-Frontend > js-Tutorial > Hauptteil

Die Bedeutung von Funktionen in JS

php中世界最好的语言
Freigeben: 2018-03-19 16:26:42
Original
2952 Leute haben es durchsucht

Dieses Mal werde ich Ihnen die Bedeutung von Funktionen in JS erläutern. Was sind die Vorsichtsmaßnahmen bei der Verwendung von Funktionen in JS? Stehen Sie auf und schauen Sie nach.

Da es sich um ein -Objekt handelt, kann es sein:

  1. Erstellt über ein Literal

  2. Zugewiesen an Variablen, Array-Elemente und Eigenschaften anderer Objekte(Eigenschaft)

  3. Wird als Parameter an eine Funktion übergeben

  4. Als Rückgabewert einer Funktion

  5. Enthält Attribute, die dynamisch erstellt und zugewiesen werden können

Zusätzlich zu den Funktionen der oben genannten Objekte unterscheiden sich die Funktionen von anderen Objekte dadurch, dass sie aufgerufen werden können.

In JS gibt es variable Beförderung. Wenn eine Variable mit var deklariert wird, wird sie sofort an die Spitze des aktuellen Gültigkeitsbereichs befördert (mit let und const deklarierte Variablen tun dies nicht). Zum Beispiel:

1 function a() {2     console.log(b);3     var b = 10;4 }5 a();  //undefined
Nach dem Login kopieren

Das laufende Ergebnis des obigen Codes ist undefiniert. Der Grund dafür ist, dass, wenn die b-Variable über var deklariert wird, eine Variablenheraufstufung stattfindet und sofort an die Spitze des aktuellen Bereichs heraufgestuft wird (beachten Sie, dass die Heraufstufung unmittelbar nach der Deklaration erfolgt, wenn b dies noch nicht getan hat wurde definiert!) , der „aktuelle Umfang“ zu diesem Zeitpunkt ist der Umfang der Funktion a. Daher sieht der obige Code tatsächlich so aus:

1 function a() {2     var b;  //变量的声明被提升至当前作用域顶部3     console.log(b);4     b = 10;5 }6 a();
Nach dem Login kopieren

Die Deklaration der Variablen b wird in die zweite Zeile hochgestuft (nur die Deklaration wird hochgestuft), und b wird kein a zugewiesen Wert zu diesem Zeitpunkt. Wenn der Code daher bis zur dritten Zeile von console.log(b) weiter ausgeführt wird, wird undefiniert ausgegeben.

Zusätzlich zur variablen Förderung verfügt JS auch über eine „Funktionsförderung“. Ebenso werden auch Funktionen gefördert, allerdings handelt es sich bei der Funktion nicht nur um eine deklarierte Beförderung, sondern um eine „Gesamtbeförderung“. Bitte schauen Sie sich den folgenden Code an:

1 function a() {2     b();3     function b() {4         console.log("yes!");5     }6 }7 a();  //yes!
Nach dem Login kopieren

Zu diesem Zeitpunkt kann Funktion b normal ausgeführt werden. Dies liegt genau daran, dass die Funktion hochgestuft wird und „insgesamt hochgestuft“ wird, sodass b() normal ausgeführt werden kann. Dieser Code entspricht tatsächlich:

1 function a() {2     function b() {3         console.log("yes!");4     }5     b();6 }7 a();  //yes!
Nach dem Login kopieren

Es ist zu beachten, dass nur in gewöhnlicher Form deklarierte Funktionen gefördert werden können! Zum Beispiel:

1 function a() {2     b();3     var b = function() {        //字面量声明的函数4         console.log("yes!");5     }6 }7 a();  //报错
Nach dem Login kopieren

Die anonyme Funktion wird hier durch Literale deklariert, sodass keine Funktionsheraufstufung erfolgt und ein Fehler auftritt gemeldet werden.

Aber wenn Variablen und Funktionen gleichzeitig deklariert werden, welche davon hat Vorrang?

In JS werden Funktionen unter anderem deshalb als „erstklassige Bürger“ bezeichnet, weil sie im Vergleich zu Variablen Priorität haben wird an die Spitze des Bereichs befördert! Zum Beispiel:

1 function a() {2     var b = 10;3     function b () {4         console.log("yes!");5     }6     console.log(b);7     console.log(typeof b);8 }9 a();    //10  number
Nach dem Login kopieren

In diesem Code wird die Deklaration der Variablen b angehoben, aber die Funktion als „Bürger erster Klasse“ wird über der Deklaration der Variablen b angehoben. Während der Codeausführungsphase wird b 10 zugewiesen, sodass das Ausgabeergebnis ist, dass b 10 ist und der Typ zur Zahl wird.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.

Empfohlene Lektüre:

So implementieren Sie die bidirektionale Datenbindung im WeChat-Applet

JavaScript-optimiertes DOM Webpack Verwendung von Modulen

Das obige ist der detaillierte Inhalt vonDie Bedeutung von Funktionen 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