在JavaScript中forEach和for循环之间的区别

前端之家收集整理的这篇文章主要介绍了在JavaScript中forEach和for循环之间的区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道:在 JavaScript中forEach和for循环之间有什么显着的区别.

考虑这个例子:

var myArray = [1,2,3,4];

myArray.forEach(function(value) {
  console.log(value);
});

for (var i = 0; i < myArray.length; i++) {
  console.log(myArray[i]);
}

这是我研究的一部分:

>性能:根据JsPerf:for Each比循环慢一点.
>可用性:在forEach循环的情况下,我们无法从回调中断/返回.

例如:你想知道一个数字是否为素数.我认为使用for循环比使用forEach循环要容易得多.

>可读性:使用for循环使代码代码中的forEach更易读.
>浏览器兼容性:forEach不支持IE<所以我们的代码中引入了一些垫片.
我的问题是:

>每个循环的优点有哪些?
>在什么情况下,forEach是更可取的.
为什么甚至进入JavaScript?为什么需要它?

解决方法

forEachArray原型的一种方法.它遍历数组的每个元素,并将其传递给回调函数.

因此,基本上,forEach是用例将“将数组的每个元素传递给函数”的简写方法.这里有一个常见的例子,我认为Array.forEach是相当有用的,相比于for循环:

// shortcut for document.querySelectorAll
function $$(expr,con) {
    return Array.prototype.slice.call((con || document).querySelectorAll(expr));
}

// hide an element
function hide(el) {
    el.style.display = 'none';
}

// hide all divs via forEach
$$('div').forEach(hide); 

// hide all divs via for
for (var divs = $$('div'),i = 0; i < divs.length; i++) {
    hide(divs[i])
}

如您所见,与for循环相比,forEach语句的可读性得到改善.

另一方面,for语句更灵活:它不一定涉及数组.正常循环的性能稍好一点,因为每个元素都没有函数调用.尽管如此,建议在可以将其写入forEach语句时避免使用循环.

猜你在找的JavaScript相关文章