美文网首页Web 前端开发 程序员让前端飞
如何取出for循环中i的实时值

如何取出for循环中i的实时值

作者: 阿r阿r | 来源:发表于2017-06-14 15:38 被阅读0次

首先要理解几个概念(这里不详细解释)
1.作用域和作用域链
2.闭包

var index=-1;
for(var i=0;i<10;i++){
     document.onclick = function(){
     alert("i:"+k); //i:10
    }
    index = i;
}
alert("index:"+index); //index:9

这个时候,单击屏幕,i的值是10;index的值是9。
那么如果我想在某个特定条件下取出i的值应该怎么办呢?
例如 我就想取出i=5;

            var index=-1;
            for(var i=0;i<10;i++){
                var a=function(k){
                    if(k==5){   // 当i的实时值为5时,执行
                        document.onclick = function(){
                        alert("i:"+k); //i:5
                        }
                    }
                };  //创建函数,赋值给a
                a(i);  //通过a调用函数,将i的实时值赋值给k传入函数
                index = i;
            }
            alert("index:"+index); //index:9

先定义一个函数,将 i 作为参数值传给 k ,然后弹出 符合条件下的 k 值,也就是实时的 i 值了。

如果我想用index 来保存实时的 i 值,只需要把 index 放到特定条件内部就可以了。

                        var index=-1;
            for(var i=0;i<10;i++){
                var a=function(k){
                    if(k==5){
                        document.onclick = function(){
                        alert("i:"+k);    // i:5
                        }
                        index = k;
                    }
                };
                a(i);
            }
            alert("index:"+index);  //index:5

注意如果 index是在判断条件外面的函数,则 for循环还是会使 index值变成9

                       var index=-1;
            for(var i=0;i<10;i++){
                var a=function(k){
                    if(k==5){
                        document.onclick = function(){
                        alert("i:"+k);    // i:5
                        }
                    }
                                       index = k;
                };
                a(i);
            }
            alert("index:"+index);  //index:9

相关文章

  • 如何取出for循环中i的实时值

    首先要理解几个概念(这里不详细解释)1.作用域和作用域链2.闭包 这个时候,单击屏幕,i的值是10;index的值...

  • 第二章⑥跳转语句

    break 使用在switch中或者循环中使用在循环中,表示:结束当前循环(默认最近) continue 使用在循...

  • 注意事项和获取元素

    i的问题,执行时机 循环中加事件,事件中使用i 循环中加定时器,定时器中使用i...

  • Javascrip—取出循环中特定的值

    一、ES5在循环过程中,如下代码段不能按照编写的本意输出结果(本意是想输出6)。 由于作用域链的配置机制,导致它们...

  • break,continue

    for (var i = 0; i < 5; i++) { if(i==2){ // break; 整个循环中段了...

  • Scala中->与<-的区别

    <-的使用 <-用于for循环中,for (i <- 表达式)例如 ->的使用 用《Scala for the I...

  • for嵌套

    for循环的嵌套(重点) for循环中有嵌套了一个for循环 for(var i=0; i<10;i++){ ...

  • Java中的i++ 和 ++i 在for循环使用

    Java的i++ 和++i 的区别i++:先赋值,后计算;++i;先计算,后赋值。 for循环中的i++和++i...

  • for循环中++i和i++的区别

    语法 语句 1 在循环(代码块)开始前执行 语句 2 定义运行循环(代码块)的条件 语句 3 在循环(代码块)已被...

  • java中while的注意事项

    1.java循环中有while,do…while,以及for,但是没有while…do,切记切记 2.while循...

网友评论

    本文标题:如何取出for循环中i的实时值

    本文链接:https://www.haomeiwen.com/subject/mrosqxtx.html