<script language="javascript">
   a=1234 ;
   alert(a) ;
</script>
上边的代码是可行的但是下边的代码中b为什么必须先声明?谢谢.
<script language="javascript">
 var b="";
 for(a=0;a<3;a++)
  {
   b=b+" a="+a ;
  }
 alert(b) ;
</script>

解决方案 »

  1.   

    JS里变量可以不用声明还直接给它赋值。
     b=b+" a="+a ; 
    这句话里赋值是在后面进行的,先要取b的值,
    b没有声明,所以报错了。
      

  2.   

    b=b+" a="+a ; 这个表达式的问题。
    等号运算符是从右向左执行的,也就是先执行b+" a="+a
    这样就得先给赋值,就是你说的定义。
    先赋值后运算。
      

  3.   

    在javascript里面的一些中间变量是可以不需直接声明而直接使用的,有空找本javascript的书看一下就知道了
    但在
    <script language="javascript"> 
     var b=""; 
     for(a=0;a <3;a++) 
      { 
       b=b+" a="+a ; 
      } 
     alert(b) ; 
    </script> 
    中 b起到的是一种字符串的容器的作用,只有在声明以后才能分配一个动态的内存