<html>
  <body>
    <script type="text/javascript"> 
        alert(b);
        b = "3";  
    </script>
  </body>
</html>

解决方案 »

  1.   

    什么输出也没有,好歹有个undefined吧。
      

  2.   

    不是这样的,不带var 那就是隐式声明,那会是一个全局变量.小程序里是无关紧要的.如果是一个大的项目,茫茫多的全局变量,是一个巨大的灾难
      

  3.   

    良好的习惯很重要吧。。
    http://topic.csdn.net/u/20110112/11/45c81365-a685-42c9-a991-1fab3b7d18e8.html
    当时也就是少加了VAR。。
      

  4.   

     
    在函数内如果没有var,变量会变成全局变量 .
      

  5.   


    你这段代码会报错的阿,哥哥,难道你把display error的选项勾掉了?
      

  6.   

    学习了,我也觉得应该至少会是个 underfind 之类的!
      

  7.   

    到alert(b)就错了 因为b没有定义 是在你alert语句后定义的另:加var 和不加var的区别在于前者隐式声明(局部变量) 后者显示声明(全局变量)
    这个东西要合理的去运用 js查找全局变量比局部变量要慢的多
      

  8.   

    我的理解加了var是显示声明,可以不要初始化。
    如果不加var,那么是隐式声明,必须进行初始化,否则算非法变量名。
    隐式声明的变量是全局的,可以这样理解 吗??
      

  9.   

    什么输出也没有,好歹有个undefined吧。
    既然隐式声明是全局的,
    那么本例中,为什么出错了??
      

  10.   

    肯定会错了  输出都是在变量后面  变量都没有  用什么输出?一般JS写var比较好,要规范
      

  11.   

    一行一行下去,你alert(b)之前摆明了还没有b
    如果  是这样
            alert(b);
            var b = "3";  
    到会来个undefined
    他会进行预编译 ,也就是先找var,进行声明 ,初始化为undefined
    var b = undefined
    alert(b)
    b="3"
    也就是这样
      

  12.   

    var就牛一点吗??居然能预编译???
      

  13.   

    我理解的是两类进行预先编译的:var 和 function
    是这样吗??
      

  14.   

    (function() {
      a = 3;
    })();alert(a);(function() {
      var b = 3;
    })();alert(b);