// 此刻,foo还没用声明
typeof foo; // "undefined"
if (true) {
// 进入这里以后,foo就被声明在整个作用域内了
function foo(){ return 1; }
}
else {
// 从来不会走到这里,所以这里的foo也不会被声明
function foo(){ return 2; }
}
typeof foo; // "function"
这段程序在IE 和 谷歌下面运行的结果都是function 和您讲解的有出入 这是怎么回事?
这段代码实测:在IE8下和chrome下两个typeof结果都是functio,但在firefox下第一个是undefined,第二个是function
但有几个地方你的理解有问题:
// 此刻,foo还没用声明 ====已经声明了,foo的值是undefined
typeof foo; // "undefined"
if (true) {
// 进入这里以后,foo就被声明在整个作用域内了
function foo(){ return 1; }
}
else {
// 从来不会走到这里,所以这里的foo也不会被声明 ===foo的声明绑定不是在运行阶段
function foo(){ return 2; }
}
typeof foo; // "function"