さえ巻き上げた後、以下の変更1なぜこのsiteから巻き上げ例を見ると、私は得ることはありません:空の関数宣言はどのようにJavaScriptで巻き上げ作業をしますか?
var a = 1;
function b() {
a = 10;
return;
function a() {}
}
b();
alert(a); // alerts 1
が実際に
var a = 1;
function b() {
function a() {}
a = 10;
return;
}
b();
alert(a);
あるa
ので、それが10を変化させてはなりませんb
関数が返る前にまだ10に割り当てられていますか?なぜ空の関数を呼び出すと、これが起こるのですか?関連するノートでは、なぜ以下の機能は警告を発しませんが、1はまだ変わっていますか? a
は、宣言のある関数に再割り当てされませんか?
var a = 1;
function a() {}
alert(a);
'関数A(){}は'だけ 'のようなものですされているだろうですvar a; ' 'b'の' a'は外側の 'a'ではありません。また、 'a'は呼び出されません。 – Xufox
'関数a(){}'は関数のポインタを作成し、 'a = 10'はこのポインタに値を代入/置き換えます。 – Rajesh
の最初のコードスニペットは実際には第2引数として解析されません1。 'a'変数は常に' function a() 'のスコープの外にあります。 – haim770