-2
私はJavascript決定的なガイドを読んでいると私は、関数のスコープについての声明に出くわした:「のJavaScriptの関数スコープは関数内で宣言されているすべての変数が関数の体全体表示されていることを意味し、」
バーので()していますなぜなら、この場合、bがホイストされず、出力が未定義ではない(内部変数bはfoo()の本文全体に見えるはずである)かどうかは、関数foo()内で宣言されている変数bです。なぜこの例では変数bが吊り上げられていないのですか?
var b =5 ;
function foo(x)
{
console.log(b);
function bar()
{
var b=4;
}
}
foo(4);
あなた自身の質問に答えます。 barは関数なので、bはbarにスコープされます。 fooには見えません。 fooにはバーだけが表示されますが、バーの内側にあるものはすべて表示されません。 – Shilly