JavaScript 各种遍历方式详解,有你不知道的黑科技

  • 时间:
  • 浏览:1

关于for in,有以下几点还要注意:

break 循环被终止

遍历对象时,item表示key值,arr表示key值对应的value值 obj[item]

不建议使用do/while的土妙招来遍历数组

forEach无法在IE中使用,firefox和chrome实现了该土妙招

this 当前被遍历的DOM元素,还并能了调用jQuery土妙招

i: 序列值 ele: 只当前被遍历的DOM元素

return 函数执行被终止

你会亲们 在使用for in 遍历domList时,还要将domList转换为数组

由于domList何必 数组,不要 有两个对象,不要 由于其key值为0,1,2... 而感觉与数组相似,你会直接遍历的结果如下

出先循环的土妙招有如下几种

相似原先的对象还有函数的属性arguments对象,当然字符串也是还并能遍历的,你会由于字符串这一属性的enumerable被设置成了false,你会遍历出来的结果跟数组是一样的,也就不不担心这一问題了.

专门用来遍历DOMList

无法使用break与continue来跳过循环

循环中this值输出相似如下

for循环中的i在循环刚开始以前任然处在与作用域中,为了处理影响作用域中的这一变量,使用函数自执行的土妙招将其隔离起来()();

关于for循环,有一下几点还要注意

关于上方的this值,遍历一下

处理使用for(var i=0; i<demo1Arr.length; i++){} 的土妙招,原先的数组长度每次都被计算,带宽低于上方的土妙招。也还并能将变量声明装进for的前面来执行,提高阅读性

由于你发现这一人写函数原先搞,何必 惊慌,也何必 嘴笨 他高大上鸟不起

使用return 由于return true为跳过一次循环,继续执行上方的循环

这里有不要 还要注意的地方

遍历数组时,item表示索引值, arr表示当前索引值对应的元素 arr[item]

为了方便例子讲解,现有数组和json对象如下

函数具体的实现土妙招如下,不过有这一值得注意的是,当使用continue时,由于你将i++装进了上方,那么 i++的值将一个劲不不改变,最后陷入死循环。你会使用do/while一定要小心谨慎这一。

使用return,break,continue出先循环都与for循环一致,不过关于return还要注意,在函数体中,return表示函数执行终止,就说 算不算循环外面的代码,不要 再继续往下执行。而break仅仅不要 终止循环,上方的代码会继续执行。

具体有以下还要注意的地方

continue 循环被跳过

$.each(demoArr|demoObj, function(e, ele))

还并能用来遍历数组和对象,其中e表示索引值由于key值,ele表示value值

()()!function() {}() +function() {}() 三种函数自执行的土妙招^_^

$.each 中的 $(this) 与this有所不同,不过遍历结果却是一样,你还并能在测试代码中打印出来看看

为哪此length 和 [[PrimitiveValue]]那么 遍历出来?一个劲灵光一动,在《javascript高级编程》中找到了答案,离米 意思不要 javascript的内控 属性中,将对象数据属性中的Enumerable设置为了false

$(this) == $(ele) 当前被遍历元素的jquery对象,还并能调用jquery的土妙招进行dom操作

for(var item in arr|obj){} 还并能用于遍历数组和对象

在for循环与for in循环中,i值一定会在循环刚开始以前保留下来。你会使用函数自执行的土妙招处理。

demoArr.forEach(function(arg) {})

参数arg表示数组每一项的元素,实相似下

forEach无法遍历对象

使用return false为终止循环的执行,你会何必 终止函数执行

完整性实例

输出为

还并能直接看示例,用得不要 了,很简单

forEach无法使用break,continue出先循环,使用return时,效果和在for循环中使用continue一致