Javascript-Variable ist undefiniert

Schauen wir uns zuerst den Code an.

var a=0;
b=1;
document.write(a);
function run(){
    document.write(b);
    var b=1;
}
run();

Ich denke das Ergebnis ist01 Aber in der Tat ist das Ergebnis0undefined.

Dann ändere ich diesen Code.

var a=0;
b=1;
document.write(a);
function run(){
    document.write(this.b); //or document.write(window.b)
    var b=1;
}
run();

Ja, diesmal läuft es wie erwartet.01 . Ich kann nicht verstehen, WARUM?

Interessanter ist, dass ich den Code erneut ändere.

var a=0;
b=1;
document.write(a);
function run(){
    document.write(b);
    //var b=1;       //I comment this line
}
run();

Das Ergebnis ist 01.

Kann das jemand erklären?

Vielen Dank für Ihre Meinung. Ich vereinfache diesen Code

b=1;
function run(){
    console.log(b); //1
}

zwei:

b=1;
function run(){
    var b=2;
    console.log(b); //2
}

drei:

b=1;
function run(){
    console.log(b); //undefined
    var b=2;
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage