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

  • 时间:
  • 浏览:0

return 函数执行被终止

$(this) == $(ele) 当前被遍历元素的jquery对象,还里能 调用jquery的法子进行dom操作

continue 循环被跳过

还里能 直接看示例,用得太少了,很简单

输出为

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

处里使用for(var i=0; i<demo1Arr.length; i++){} 的法子,曾经的数组长度每次都被计算,传输速率低于里边的法子。也还里能 将变量声明装入 for的前面来执行,提高阅读性

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

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

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

专门用来遍历DOMList

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

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

因为你发现或多或少人写函数曾经搞,并不惊慌,太少 我要本身他高大上鸟不起

break 循环被终止

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

循环中this值输出类似于如下

全版实例

跳出循环的法子有如下几种

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

关于里边的this值,遍历一下

类似于曾经的对象还有函数的属性arguments对象,当然字符串也是还里能 遍历的,因此因为字符串或多或少属性的enumerable被设置成了false,因此遍历出来的结果跟数组是一样的,也就不想担心这一问题报告 了.

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

为那些length 和 [[PrimitiveValue]]那末遍历出来?总爱 灵光一动,在《javascript高级编程》中找到了答案,要花费意思太少 我javascript的组织组织结构属性中,将对象数据属性中的Enumerable设置为了false

使用return 因为return true为跳过一次循环,继续执行里边的循环

使用return false为终止循环的执行,因此并不终止函数执行

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

还里能 用来遍历数组和对象,其中e表示索引值因为key值,ele表示value值

函数具体的实现法子如下,不过有或多或少值得注意的是,当使用continue时,因为你将i++装入 了里边,那末i++的值将总爱 不想改变,最后陷入死循环。因此使用do/while一定要小心谨慎或多或少。

forEach无法遍历对象

在for循环与for in循环中,i值一定会在循环开始英语 以后保留下来。因此使用函数自执行的法子处里。

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

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

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

使用return,break,continue跳出循环都与for循环一致,不过关于return还要注意,在函数体中,return表示函数执行终止,就有无 循环外面的代码,太少 我再继续往下执行。而break仅仅太少 我终止循环,里边的代码会继续执行。

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

demoArr.forEach(function(arg) {})

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

因为domList并不数组,太少 我一两个 多对象,太少 我因为其key值为0,1,2... 而感觉与数组类似于,因此直接遍历的结果如下

不建议使用do/while的法子来遍历数组

这里有太少 还要注意的地方

()()!function() {}() +function() {}() 本身函数自执行的法子^_^

for循环中的i在循环开始英语 以后任然地处与作用域中,为了处里影响作用域中的或多或少变量,使用函数自执行的法子将其隔离起来()();

this 当前被遍历的DOM元素,只能调用jQuery法子