注意 :javascript没有块级别的意思:也就是说你在{}语句块中定义的变量拥有跟它本身所在域一样的作用域 所以 你就会得到这个结果我知我说明白否

解决方案 »

  1.   

    这我知道,我但就不明白:这里的foo不是被定义两次;两次声明
      

  2.   

    这个就是javascript这个语言的特点
      

  3.   

    而且 javascript还有不定义 就可以直接赋值的特点如果一个变量没有显式定义,而直接进行了赋值操作的话 解释器会将这个变量当成全局变量来进行隐式定义 m=30; alert(m);         //输出30 而不会报错