var d=new Date();
 var d1=d.getTime();
 for(var i=1;i<=100;i++)
 {    var s=0;
        s=s+i;

 }
 document.write(s)  //怎么输出是100 ?
  var d2=new Date();
  var d3=d2.getTime();
  document.write("<br />");
  document.write(d3-d1);

解决方案 »

  1.   

    把 var s = 0拿到for循环外面
      

  2.   

    每次循环都是把s赋值为0,然后最后一次循环i=100, s = s + i,当然是100了
      

  3.   

    for(var i=1;i<=100;i++)
         {    var s=0;//注意这里
                s=s+i;
                
         }
      

  4.   

    以上几位没说到点子上因为在JavaScript里没有块级
    for()循环的var的变量和在循环外var的都是一样的。不想C#等语言
    在javascript里只有在函数里var的变量是私有的变量
      

  5.   

    ...这跟块级有啥关系。什么语言for循环里你重新定义变量也是这个样。
      

  6.   

    1、js里。你for循环里面和外面声明的变量都是全局的
    2、JAVA等语言中。for循环里面声明的是私有变量(局部变量)外面声明的是全局的。不是吗