Warum der Alarm nicht funktioniert?
Ich will wissen, was ist der Unterschied, wenn Sie eine variable deklarieren, ob mit var
. ich verwendete den folgenden code:
<body>
<h1>New Web Project Page</h1>
<script type="text/javascript">
function test(){
a = "hello";
var b="world";
}
alert(a);
alert(b);
</script>
</body>
Warum der Alarm funktioniert nicht und was ist der Unterschied, wenn Sie eine variable deklarieren, ob mit var
in javascript.
Du musst angemeldet sein, um einen Kommentar abzugeben.
alert
funktioniert nicht, weil im Fall vonb
ist, existiert nicht im richtigen Umfang und im Fall vona
es noch nicht instanziiert wurde noch nicht, weil Sie noch nicht die Funktion aufgerufentest
var
erstellt eine variable, die lokal auf den Bereich, in dem es aufgerufen wird. Ohne var erstellen Sie eine Globale variable.generell, es sei denn, es gibt einen guten Grund, die Sie nicht wollen, verwenden Sie Globale Variablen. Das heißt, Sie wollen, um alle Ihre Variablen mit
var
. Das einfügen von Variablen nur in dem Spielraum, den Sie benötigt werden, erleichtert zu verstehen und zu pflegen-code. Es hilft auch, lindern die "Magischen Variablen" - problem. Wo haben Sie Variablen, die nur angezeigt werden, Sie aber nicht haben eine klare Vorstellung von wo. Es macht es auch einfacher, den code Debuggen, weil in javascript Variablen, die nicht existieren, erstellt on-the-fly. Aber wenn du nur lokale Variablen verwenden, die durchvar
und ein tool wie jsLint du wirst nicht auf das problem ein Schreibfehler in einem Variablennamen zu werfen-code wack.Deklarieren einer Variablen, ohne
var
macht es global so alles Zugriff haben kann. Der Grund Ihrer Warnung funktioniert nicht, jedoch ist durch Sie nie aufrufentest()
soa
oderb
sind nie vergeben. Wenn Sie das tun, rufen Sietest
(vor dem Alarm),b
undefiniert, unda
Lesen sollte Hallo.Eine große Ressource, auf die Variablen und Bereiche.
Du bist nicht berufen, die
test()
Funktion. Wenn dievar
ist ausgeschlossen, Variablen werden global, also sind Sie verfügbar, um alle code.b
wäre immer noch nicht definiertGenau die gleiche Frage bezüglich der Verwendung von 'var' beantwortet wurde hier
Hinsichtlich, warum Ihre Warnung funktioniert nicht, es ist, weil Sie nicht als 'test ()' - Funktion. Es wurde gerade erstellt...es wird sich nichts tun. Sie müssen anrufen, um Sie zum füllen der Variablen.