Warum die JavaScript-Variablendeklaration in der Konsole zu „Undefiniert“ führt
Beim Deklarieren einer Variablen in der JavaScript-Konsole mit der Syntax var a;, es gibt „undefiniert“ aus. Dieses Verhalten kann überraschend sein und wird häufig in Stack Overflow-Beiträgen angesprochen. Diese Diskussionen können jedoch nicht vollständig erklären, warum dies geschieht.
Das Verhalten der Konsole ist ein direktes Ergebnis der Art und Weise, wie JavaScript Ausdrücke auswertet. Bei der Auswertung der Anweisung var a; betrachtet JavaScript diese als eigenständigen Ausdruck und gibt ihr Ergebnis zurück, das tatsächlich „undefiniert“ ist.
Es ist rätselhafter, warum die Konsole beim Deklarieren einer Variablen auch „undefiniert“ ausgibt mit einem Anfangswert wie var a = 3. Überraschenderweise geben alle Variablendeklarationsanweisungen in JavaScript (sowohl var als auch Funktion) „undefiniert“ zurück, wenn es eine andere Anweisung mit einem „echten“ Ergebnis gibt.
Zum Beispiel :
> var a = 3; undefined > var a = 3; a = 4; 4 > var a = 3; a = 4; var a = 5; function f() {}; 4
Dieses Verhalten hat seine Wurzeln in der eval-Anweisung, die gemäß der ECMAScript-Spezifikation:
Die Auswertung der var a = 4-Anweisung gibt (normal, leer, leer) zurück, was die Kriterien für die Rückgabe von „undefiniert“ erfüllt.
Die Auswertung gibt jedoch auch an, dass, wenn die Wenn der Abschlusswert des ausgewerteten Programms nicht leer ist, wird der Wert der letzten Anweisung zurückgegeben. Im letzten Beispiel ist a = 4 die letzte Anweisung, daher wird ihr Wert (4) zurückgegeben.
Zusammenfassend gibt die JavaScript-Konsole „undefiniert“ für Variablendeklarationen aus, da diese Deklarationen „undefiniert“ zurückgeben, wenn sie als ausgewertet werden Ausdrücke. Dieses Verhalten kann insbesondere beim Zuweisen von Anfangswerten zu Variablen verwirrend sein, ist aber auf die zugrunde liegenden Auswertungsmechanismen von JavaScript-Ausdrücken und -Anweisungen zurückzuführen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3