美文网首页
js各种循环的区别

js各种循环的区别

作者: 佳句欣赏 | 来源:发表于2017-03-21 18:42 被阅读0次

    for(var i =0,len=arr.length;i<len;i++){}

    • 适合于数组的循环

    **for(var key in obj){} **

    • 适合json对象的循环

    foreach

    • 属于ES5的语法,能够同时获取到key value 数组本身
    var arr = [1,2,3,4,5,6,4,3,5];
    arr.forEach(function (item,index,arr) {
        console.log(item,index,arr)
    },null)
    
    • 不能用break,continue语句跳出循环
    • 不能函数内使用return语句

    for of

    • ES6语法,目前浏览器只支持使用item,不支持使用 解构语法 [item,index]
    var arr = [1,2,2,3,3,3];
    for(var item of arr){
        console.log(item)
    }
    
    • 支持使用continue 与 break ,跳出循环;

    jquery 中的each
    源码: 有args参数与没有这个参数是不一样的

        each: function( object, callback, args ) {
            var name, i = 0,
                length = object.length,
                isObj = length === undefined || jQuery.isFunction( object );
            if ( args ) {
                if ( isObj ) {
                    for ( name in object ) {
                        if ( callback.apply( object[ name ], args ) === false ) {
                            break;
                        }
                    }
                } else {
                    for ( ; i < length; ) {
                        if ( callback.apply( object[ i++ ], args ) === false ) {
                            break;
                        }
                    }
                }
            // A special, fast, case for the most common use of each
            } else {
                if ( isObj ) {
                    for ( name in object ) {
                        if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
                            break;
                        }
                    }
                } else {
                    for ( ; i < length; ) {
                        if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
                            break;
                        }
                    }
                }
            }
            return object;
        },
    

    相关文章

      网友评论

          本文标题:js各种循环的区别

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