Warum dieses Code-Snippet den Fehler ?Uncaught ReferenceError: x is not Defined“ in der Konsole ausgibt
<body> <script> console.log(x); </script> <script> var x = 10; </script> </body>
Und dieser Datensatz ist ?undefiniert“?
<body> <script> console.log(x); var x = 10; </script> </body>
Ich versuche, die Variablendeklaration und den Variablenbereich zu verstehen. Und erwarten Sie eine Steigerung, da sich der gesamte Code auf derselben Seite befindet. Da console.log() jedoch in einem anderen Skript-Tag getrennt ist, erhalte ich eine Fehlermeldung, anstatt nur ?undefiniert“ in der Konsole zu protokollieren.
var
被提升,這意味著它可以在定義它的范圍的開頭訪問,即使聲明行可能位于范圍的末尾。如果您在聲明之前訪問該 var,則它是 未定義
,因為您仍然需要執(zhí)行聲明,并可能將該變量初始化為特定值。
所以你的第二個例子就是這樣工作的。
在此處閱讀有關(guān)提升的信息:
https://developer.mozilla.org/en-US/docs /術(shù)語表/起重
但是在第一個示例中 2