for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的。
{
document.write("i:"+i+"<br>");
}
这个i是默认被初始化了的

解决方案 »

  1.   

    语句块结束的时候
    for(var i=0;i<10;i++)相当于for(i=0;i<10;i++),js允许这么做
      

  2.   

    js里是可以重复定义的,C++不行
    <script language="javascript">
    document.writeln(typeof i + "<br/>");
    for(var i=0;i<10;i++)
    {
      document.writeln("hello"+i + "<br/>");
    }
    document.writeln(typeof i + "<br/>");
    var i = "str";
    document.writeln(typeof i + "<br/>");
    for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的。
    {
      document.write("i:"+i+"<br>");
    }
    document.writeln(typeof i + "<br/>");
    </script>
      

  3.   


    <script language="javascript">
    for(var i=0;i<10;i++)这里的i是局部变量
    {
    document.writeln("hello"+i);
    }
    for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的,但作用域是不相同的,var i表示局部变量,而直接i的//话,就是一个全局变量的了…这就是是他们之间的直接区别
    {
    document.write("i:"+i+"<br>");
    }
    document.write("i:"+i+"<br>");//加多一句在循环外面试一下</script>
      

  4.   


    <script language="javascript">Test=function (){
    for(var i=0;i<10;i++)//这里的i是局部变量,然后你去掉var 看看document.write("i="+i);(会有值)
    {}
    }document.write(Test()+"      i="+i);</script>
      

  5.   

    for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的,但作用域是不相同的,var i表示局部变量,而直接i的//话,就是一个全局变量的了…这就是是他们之间的直接区别
    {这样说的话,这个全局变量i没有定义啊,js中变量不是要定义才能用吗?如果js中允许重复定义:
    var i= 0;
    var i = "str";与
    var i = 0;
    i = "str";
    是没有区别吧?
      

  6.   

    for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的。
    此处的i即是上面“
    for(var i=0;i<10;i++)
    中的i
    属于全局变量<script language="javascript">
    for(var i=0;i<10;i++)
    {
    document.writeln("hello"+i);
    }
    for(i=i+100;i<130;i++) //for(var i=0;i<10;i++)结果是一样的。
    {
    document.write("i:"+i+"<br>");
    }
    </script>
      

  7.   

    变量作用域通常依函数而定
    函数内定义的--局部变量,
    函数内未定义的--全局变量<script language="javascript">
    ii=100;
    function test(){
    for(var i=0;i<10;i++){//此处的i为局部
    document.writeln("hello"+i);
    }
    document.write("<br>");
    for(ii+=20;ii<130;ii++) {//此处的ii为全局
    document.write("i:"+ii+"<br>");
    }
    alert("i(局部):"+i)
    alert("ii(全局):"+ii)
    }
    test()
    </script>
      

  8.   

    我的问题没有回答清楚。
    for(var i=0;i<10;i++) 
    {
    document.writeln("hello"+i);
    }
    for(i=0;i<10;i++)
    {
    document.write("i:"+i+"<br>");
    }意思是说:
    上面这个i在for循环内作用域已经结束?如果是?那么下面的for循环就是没有定义的变量,不对吗?而js不允许变量没有
    定义而使用,因此,应该是有错误的。但是事实上,却没有错误。如果按照caiying2009的说法:
    for(i=0;i <10;i++) //for(var i=0;i <10;i++)结果是一样的。 
    此处的i即是上面“ 
    for(var i=0;i <10;i++) 
    中的i 
    属于全局变量 那么意思就是第一个for循环for(var i=0;i<10;i++)的i变量作用域并不限于在for循环体内,而是超出循环体了。如果是这样,那么就与C++的不同。我的问题是:
    js中for循环的i的作用域,到底是在for循环结束生命周期就结束,还是跳出for一层的生命周期而存在? 
      

  9.   


    两个for(不是函数)都不在函数内,位于JS"根(我假名之)"下,他们引用 i (不管有无var)属于全局变量--生命永存局部变量--只在函数内存活
      

  10.   

    意思是说: 
    上面这个i在for循环内作用域已经结束?如果是?那么下面的for循环就是没有定义的变量,不对吗?而js不允许变量没有 
    定义而使用,因此,应该是有错误的。 
    我记得JS是允许变量不定义的吧. 会自动定义一次.
     那么.前几楼的强人也说了.
      让JS去定义的话.就会成为全局变量