首页 新闻 会员 周边

深入理解javascript二 的疑惑

0
[待解决问题]
 // 此刻,foo还没用声明
typeof foo; // "undefined"
if (true) {
// 进入这里以后,foo就被声明在整个作用域内了
function foo(){ return 1; }
}
else {
// 从来不会走到这里,所以这里的foo也不会被声明
function foo(){ return 2; }
}
typeof foo; // "function"
这段程序在IE 和 谷歌下面运行的结果都是function 和您讲解的有出入 这是怎么回事?
michael316的主页 michael316 | 菜鸟二级 | 园豆:202
提问于:2013-03-16 12:01
< >
分享
所有回答(1)
0

这段代码实测:在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"

                        
pangdachong | 园豆:274 (菜鸟二级) | 2013-03-16 17:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册