Dieser Artikel stellt hauptsächlich die Analyse von Funktionsdeklarationen und Funktionsausdrücken in js vor. Jetzt kann ich ihn mit Ihnen teilen
Funktionsdeklaration
function say(){ console.log('函数声明'); }
Funktionsausdruck
var say = function(){ console.log('函数表达式'); }
say(); var say = function(){ console.log('函数表达式'); } say(); function say(){ console.log('函数声明'); } say();
函数声明 函数表达式 函数表达式
Funktionsdeklarationen an den Anfang des Gültigkeitsbereichs hochgestuft werden, auch wenn der Code steht geschrieben Auch wer ganz hinten steht, wird noch nach vorne befördert. Die mit einem Funktionsausdruck erstellte Funktion wird zur Laufzeit zugewiesen und kann erst aufgerufen werden, wenn die Ausdruckszuweisung abgeschlossen ist.Daher wurde die Funktionsdeklaration zu hochgestuft, auch wenn die Funktion nicht definiert wurde Vorne entspricht der obige Code:
var say; //变量被提升,此时的值为undefined say();// 函数被提升,输出“函数声明” var say = function(){ console.log('函数表达式'); } say(); function say(){ console.log('函数声明'); } say();
1.
var say; console.log(say); say(); function say(){ console.log('函数声明'); } 输出: f say(){ console.log('函数声明'); } 函数声明
var say; console.log(say); say(); var say = function(){ console.log('函数表达式'); } 输出: undefined Uncaught TypeError: say is not a function at <anonymous>:3:1
zu diesem Zeitpunkt das 函数表达式
abdeckt, sodass der „Funktionsausdruck“ ausgegeben wird. Aber beim dritten Aufruf wird bei der Aussage „Funktion“ immer noch „Funktionsausdruck“ gedruckt? ? Warum deckt das folgende 函数声明
nicht das vorhergehende 函数声明
ab? Tatsächlich ist die tatsächliche Ausführungsreihenfolge aufgrund der Heraufstufung von Funktionsdeklarationen zur Laufzeit wie folgt: 函数表达式
function say() { console.log('函数声明'); }//因为函数声明提升,所以在最前面运行了 say(); var say = function() { console.log('函数表达式'); } say(); say();
2. Der Wert des Funktionsausdrucks wird bestimmt, wenn JS ausgeführt wird, und die Funktion kann erst aufgerufen werden, nachdem die Ausdruckszuweisung abgeschlossen ist
So konvertieren Sie ein Pseudo-Array über js in ein Array
So verwenden Sie JS zum Suchen die Array-Differenz-Methode
Das obige ist der detaillierte Inhalt vonAnalyse der JS-Funktionsdeklaration und des Funktionsausdrucks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!