var i 

解决方案 »

  1.   

    当然影响了0--1//外层i
    0--2//内层i
    1--2//内层i
    2--2//内层i
    2--3//外层i
    1--1//外层i
    0--2//内层i
    1--2//内层i
    2--2//内层i
    2--3//外层i最后一次外层2--1因为内层的i改了,所以跳过最后一次循环
    大哥。。你跟一次就知道了
      

  2.   

    个人理解应该是变量作用域的原因
    同一个函数/方法下 局部变量比全局变量优先级高(同名变量)var a=["123","sdf"],b=["sd","ss","ee"];
    for(i in a){console.log(i+"--1");for(i in b){console.log(i+"--2");}console.log(i+"--3")}ASvar a=["123","sdf"],b=["sd","ss","ee"];
    for(var i in a){
      console.log(i+"--1");
      for(var i in b){
        console.log(i+"--2");
      }
      console.log(i+"--3")
    }
      

  3.   

    很简单啊
    在for(var i=0; i<a; i++)中,循环的流程完全都是i控制的。改变i的值就改变了循环的流程。
    在for (var i in o)中,i只是用来接收对象的属性名称,循环的流程不是i控制,改变i的值不影响循环的流程
      

  4.   

    是说每次在内外层循环时,都是通过属性给i赋值,这样内外层的i值不会相互影响是吗。如果是这样有些奇特了,js能够知道它内外部的属性轮询到哪个属性了是吗,不需要一个类似i的值做记录?
      

  5.   

    是说每次在内外层循环时,都是通过属性给i赋值,这样内外层的i值不会相互影响是吗。如果是这样有些奇特了,js能够知道它内外部的属性轮询到哪个属性了是吗,不需要一个类似i的值做记录?
    不是内外层的i不会相互影响,而是改变i的值也不会影响循环的流程,影响的只是i变量本身
      

  6.   

    for in 循环对i进行了赋值,而退出循环条件跟i没关系。