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:
Erstellt über ein Literal
Zugewiesen an Variablen, Array-Elemente und Eigenschaften anderer Objekte(Eigenschaft)
Wird als Parameter an eine Funktion übergeben
Als Rückgabewert einer Funktion
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
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();
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!
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!
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(); //报错
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
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!