前言for语句和forEach()方法相信学前端的朋友都不陌生,但是我们在面试的时候,面试官的这个问题你能回答吗?接下来,我们一起来验证一下吧!要知道哪个更快,首先我们需要了解两者是如何使用的。1.forfor语句用于创建一个循环,由三个可选的表达式组成,这些表达式括在圆括号中并用分号分隔,后面是要在循环中执行的语句(通常是块语句)。语法:for([initialization];[condition];[final-expression]){statement}初始化:表达式(包括赋值语句)或变量声明。通常用于初始化计数器。表达式可以使用var或let关键字来声明新变量。用var声明的变量不是循环的局部变量,而是与for循环在同一范围内。用let声明的变量是语句的局部变量。这个表达式的结果是没有意义的。条件:条件表达式用于确定循环的每次迭代是否可以执行。如果表达式的计算结果为真,则语句将被执行。此表达式是可选的。如果省略,则假定始终为真。如果评估结果为假,执行流程将跳到for语句构造之后的第一条语句。final-expression:每次循环结束时要执行的表达式。执行时间是在评估下一个条件之前。通常用于更新或递增计数器变量。语句:只要条件的结果为真就会执行的语句。要在循环体内执行多条语句,请使用块语句({...})将要执行的语句括起来。没有要执行的语句,使用空语句(;)。for语句中的所有表达式都是可选的2.forEach()forEach()方法为数组的每个元素执行一次提供的函数。语法:arr.forEach(callback[,thisArg])作用域:callback:对数组中的每个元素执行的函数,该函数接收三个参数:正在处理的数组中的当前元素。array可选值:forEach()方法正在操作的数组。thisArg:可选参数。执行回调函数时用作this的值(引用对象)。返回值:undefined描述:forEach方法对数组中具有有效值的每个项目执行一次回调函数,按升序排列,跳过那些被删除或未初始化的(例如在稀疏数组上)。回调函数会依次传递三个参数:1)。数组中当前项的值。2).数组中当前项的索引。3).数组对象本身。让我们比较一下代码。谁会赢?constarr=[]//创建一个包含一百万个元素的数组for(leti=0;i<100*10000;i++){arr.push(i)}constlength=arr.length//用于遍历数组并打印timeconsole.time('for')letn1=0for(leto=0;o
