override-variable in javascript-Funktion
Erstens möchte ich sagen, dass ich war auf der Suche einige Informationen über den Geltungsbereich von Variablen in javascript (e.g Was ist der Gültigkeitsbereich von Variablen in JavaScript?) und ich habe versucht zu verstehen, warum mein code verhält sich wie, aber ich weiß es wirklich nicht. Ich kann nicht außer Kraft gesetzt var a in meiner Funktion in der Funktion, ich kann Sie nur mit a = 6;
ohne var. Warum ist undefiniert, vor der if-Anweisung und das überschreiben dieser Variablen ? Warum gibt es kein Ergebnis wie dieses:
5
gleich 5
gleich 6
Ich habe so etwas wie dies:
undefined
nicht gleich 5
gleich 6
Hier ist mein code:
var a = 5;
function something(){
console.log(a);
if(a == 5){
console.log('equal 5')
}
else{
console.log('not equal 5');
}
var a = 6;
function test(){
if(a == 6){
console.log('equal 6');
}
else{
console.log('not equal 6')
}
}
test();
}
something();
InformationsquelleAutor elevenMinutes | 2014-03-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, weil die javascript-variable hochziehen.
Ihren code gleich ist zu:
InformationsquelleAutor xdazz
Weil, wenn Sie erklären
var a = 6
das zweite mal, Sie werden das überschreiben der ersten Erklärung dera
, d.h.var a = 5
. Wenn Sie also die Funktionsomething()
,a
wurde noch nicht definiert, daherconsole.log(a)
gibt Sie undefined zurück.Jedoch, wenn Sie ersetzen die zweite Deklaration von
a
mit nura = 6
die erste Erklärung gültig bleibt, ändern Sie einfach den Wert vona
danach und so erhalten Sie das erwartete Ergebnis:Sehen dieser Beitrag weitere Diskussion.
InformationsquelleAutor cerpintaxt