- 当数组长度 为 100000时,偶尔能刷出时间相等
- 当数组长度 小于 100000时,差距不明显,for 与 forEach 谁快谁慢不必定
- 当数组长度 大于 100000时,明显for 要快于forEach
forEachhtml
- forEach没法遍历对象
- forEach没法在IE中使用,只是在firefox和chrome中实现了该方法
- forEach没法使用break,continue跳出循环,使用return时,效果和在for循环中使用continue一致
总结:git
- for in , $.each , $().each 既支持对象也支持数组遍历;
- for , do/while , forEach 只支持数组;
- Array.prototype.map, Array.prototype.every 只支持数组和形似数组的对象;
- forEach不能退出循环,只能经过return来进入到下一个元素的遍历中(至关于for循环的continue), 且在IE没有实现该方法;
- $.each和$().each循环只能经过return false 来退出循环, 使用return 或 return true 将跳过一个元素, 继续执行后面的循环.
for...of
循环能够使用的范围包括数组、Set 和 Map 结构、某些相似数组的对象(好比arguments
对象、DOM NodeList 对象)、后文的 Generator 对象,以及字符串。
各时间用的时间大概顺序:github
ffor ~= do while < forEach ~= map ~= every < $.each < $(e).each < for inchrome
根据统计数据, 可得这8个方法的运行速度大体排序为:数组
- for 与 do while
- forEach map every (这3个不相上下,可认为运行速度差很少)
- $.each
- $(e).each
- for in
github地址(亲测):https://caraxiong.github.io/js-demo/tpls/knowledge/for.htmlfirefox