js各种循环的区别

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;
    },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 为了方便例子讲解,现有数组和json对象如下 var demoArr = ['Javascript', 'Gulp...
    抓住时间的尾巴吧阅读 4,540评论 0 1
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 9,026评论 1 19
  • Array构造器 如果参数只有一个并且是Number类型,那么就是指定数组的长度,但不能是NaN,如果是多个会被当...
    fortunatelys阅读 1,855评论 0 0
  • 偶然的机会,我遇到了21天理财投资训练营。开始,我只是抱着观看的态度,并没有对它产生多么高的期望,因为我总以为...
    芳恕阅读 2,870评论 0 4

友情链接更多精彩内容