这些年来,前端JavaScript 发展得如此之快。编写如果你之前有其他编程语言经验的前端话,你可能无法相信在 JavaScript 中有4种方法可以编写for 循环。编写
正如黑格尔所说:“存在就是前端合理的。”在技术演进的编写过程中,网络的前端力量越来越强大。因此,编写对于现代 Web 开发的前端必然语言JavaScript 期望也越来越高。
for 循环的编写语法就是一个很好的例子。开发人员发现老式不够好,前端至少对于每个使用场景。编写一些第三方库或框架开始提供一些更好的前端循环功能。然后,编写新的前端JavaScript 标准出现了,你需要再次更新浏览器。
本文将按照出现的先后顺序总结 JavaScript for 循环的4种编写方式。阅读后,你可以像专家一样正确使用它们。
这是自 ECMAScript 3 (ES3) 以来可用的老式方法。我们可以用三表达式样式来编写 for 循环:
var a = [1,2,3,4] for (var i=0; i<a.length; i++){ console.log(a[i]) }不用说,这是一种经典的 C 风格方式。 如果我们愿意,我们可以一直使用这种时尚。 但它在现代 JavaScript 项目中不像以前那么流行,因为我们现在有更方便的方法。
为了使对象的迭代更容易,有一个“for...in...”语法,它也可以从 ES3 获得。
var author = { name: "Yang", job: "programmer"} for (var k in author){ console.log(k + : + author[k]); } //name:Yang //job:programmer使用这种方式的最佳实践是永远不要将它用于数组。 由于数组也是幕后的对象,每一项的索引都被视为对象的属性,索引顺序是依赖于实现的,数组值可能不会按照你期望的顺序访问。
应用“for...in... ”到数组可能会导致一些意想不到的结果。网站模板
以下是问题“为什么使用“for...in”进行数组迭代是个坏主意?”的一个很好的例子。 在 StackOverflow 上。
// Somewhere deep in your JavaScript library... Array.prototype.foo = 1; // Now you have no idea what the below code will do. var a = [1, 2, 3, 4, 5]; for (var x in a){ // Now foo is a part of EVERY array and // will show up here as a value of x. console.log(x); } /* Will display: 0 1 2 3 4 foo */因此,为了使你的代码没有错误,永远不要将“for...in...”应用于数组。
由于“for...in...”不适用于数组。 应该有更好的迭代 JavaScript 数组的方法。 所以 ES5 引入了数组的迭代方法。 在我看来,这种改进使 JavaScript 变得优雅。
迭代方法很多,适用于不同的使用场景:
Array.forEach() Array.map() Array.filter() Array.reduce() Array.every() Array.some() …由于这篇文章是在讨论 for 循环,我们通过一个简单的例子来看看如何使用 Array.forEach() 方法:
var author = [ Y, a, n, g ]; author.forEach(function(val){ console.log(val); }); // Y // a // n // g众所周知,ES6 是 JavaScript 的里程碑。 这个版本引入了许多很棒的功能。高防服务器 “for...of...”方法就是其中之一。 它使事情变得更加优雅。
例如,我们可以像下面这样迭代数组的项:
let author = [ Y, a, n, g ]; for (let char of author){ console.log(char); } // Y // a // n // gJavaScript 作为一种编程语言,不是静态的,而是不断发展的。 for 循环语法的扩展是展示它的一个很好的例子。