Deklarieren Sie denselben Bezeichner mit var und function. Was ist es am Ende?
var a; // Deklariere eine Variable mit dem Bezeichner a
function a() { // Deklariere eine Funktion mit dem Bezeichner a
}
alert(typeof a);
Was ist Dargestellt ist „Funktion“, d. h. die Funktion hat eine höhere Priorität als die Variable.
Einige Leute glauben, dass dies der Grund ist, warum der Code sequentiell ausgeführt wird, das heißt, dass a durch die später ausgeführte Funktion überschrieben wird. Okay, tausche sie aus.
function a() {
}
var a;
alert(typeof a);
Das Ergebnis zeigt immer noch „function“ anstelle von „undefiniert“. Das heißt, Funktionsdeklarationen haben Vorrang vor Variablendeklarationen.
Wir ändern den Code leicht und weisen bei der Deklaration von a einen Wert zu.
function a() {
}
var a = 1; // Hinweis hier
alert(typeof a);
Zu diesem Zeitpunkt wird „Nummer“ angezeigt, aber nicht „Funktion“, dies entspricht
function a() {
}
var a;
a = 1; // Beachten Sie hier
alert(typeof a);
Das Das heißt, „var a = 1“ in zwei Schritte aufteilen. a wurde neu zugewiesen, natürlich ist es der letzte Wert.