js循环

for……in循环语句

    /*for……in可以把一个对象的所有属性依次循环出来*/
        var o = {
            name:'Jack',
            age:20,
            city:'Beijing'
        }
        for ( var key in o) {
            alert(key);//'name','age','city'
        }
    /*要过滤掉对象继承的属性,用hasOwnProperty()来实现*/
        var o = {
            name:'Jack',
            age:20,
            city:'Beijing'
        };
        for(var key in o) {
            if(o.hasOwnProperty(key)) {
                alert(key);//'name','age',city
            }
        }
/*由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,for……in循环可以直接循环出Array的索引*/
        var a = ['A' , 'B' ,'C'];
        for (var i in a) {
            alert(i);//'0','1','2'
            alert(a[i]);//'A','B','C'
        }

请注意,for……in对Array的循环得到的是string而不是number

for循环在已知循环的初始和结束条件时非常有用。而上述忽略了条件的for循环容易让人看不清循环的逻辑,此时用while循环更佳

while循环只有一个判断条件,条件满足,就不断循环,条件不满足时则退出循环。比如我们要计算100以内所有奇数之和,可以用while循环来实现:

     var x = 0;
        var n = 99;
        while( n > 0 ){
            x = x + n;
            n = n - 2;
        }
        alert(x);//2500

在循环内部变量n不断自减,直到变为-1时,不再满足whlie条件,循环退出。

do……while循环

它和while循环的唯一区别在于,不是每次循环开始的时候判断条件,而是在每次循环完成的时候判断条件

        var n = 0 ;
        do {
            n = n + 1 ;
        } while ( n < 100);
        alert(n);//100            

/*要过滤掉对象继承的属性,用hasOwnProperty()来实现*/
        var o = {
            name:'Jack',
            age:20,
            city:'Beijing'
        };
        for(var key in o) {
            if(o.hasOwnProperty(key)) {
                alert(key);//'name','age',city
            }
        }

原文地址:https://www.cnblogs.com/yuanxinru321/p/7545706.html