まず、コードを見てみましょう。
var a=0;
b=1;
document.write(a);
function run(){
document.write(b);
var b=1;
}
run();
結果は だと思いますが01
、実は結果は0undefined
です。
次に、このコードを変更します。
var a=0;
b=1;
document.write(a);
function run(){
document.write(this.b); //or document.write(window.b)
var b=1;
}
run();
うん、今回は予想通り。01
. 私は理解できません、なぜですか?
さらに興味深いことに、コードをもう一度変更します。
var a=0;
b=1;
document.write(a);
function run(){
document.write(b);
//var b=1; //I comment this line
}
run();
結果は01。
それで、誰でもこれを説明できますか?
あなたの視点を共有していただきありがとうございます。このコードを単純化します
b=1;
function run(){
console.log(b); //1
}
2:
b=1;
function run(){
var b=2;
console.log(b); //2
}
三:
b=1;
function run(){
console.log(b); //undefined
var b=2;
}