-2
我读的Javascript权威指南,我遇到了一个关于功能范围说明:“JavaScript的功能范围是指在函数内声明的所有变量在整个函数的身体都可见”
由于巴()有在函数foo()中声明了一个变量b,为什么在这种情况下b没有被提升,并且输出不是未定义的(内部变量b应该在foo()的整个主体中可见)?为什么变量b在这个例子中没有悬挂?
var b =5 ;
function foo(x)
{
console.log(b);
function bar()
{
var b=4;
}
}
foo(4);
你回答你自己的问题。由于bar是一个函数,因此b的作用域为bar。对foo来说是不可见的。只有酒吧是可见的,但酒吧内的一切都不是。 – Shilly