JavaScript 中哪一种循环最快呢?

答案其实是: for(倒序)

1. For 循环(正序和倒序)
我想,也许大家都应该对这个基础循环非常熟悉了。我们可以在任何我们需要的地方使用 for 循环,按照核定的次数运行一段代码。最基础的 for 循环运行最迅速的,那我们每一次都应该使用它,对吗?并不然,性能不仅仅只是唯一尺度,代码可读性往往更加重要,就让我们选择适合我们应用程序的变形即可。
2. forEach
这个方法需要接受一个回调函数作为输入参数,遍历数组的每一个元素,并执行我们的回调函数(以元素本身和它的索引(可选参数)作为参数赋予给回调函数)。forEach 还允许在回调函数中使用一个可选参数 this。

需要注意的是,如果我们要使用 forEach,我们不能使用 JavaScript 的短路运算符,即不能在每一次循环中跳过或结束循环。

3. for…of
for…of 是在 ES6(ECMAScript 6)中实现标准化的。它会对一个可迭代的对象(例如 array、map、set、string 等)创建一个循环,并且有一个突出的优点,即优秀的可读性。

const arr = [3, 5, 7];
const str = 'hello';
for (let i of arr) {
   console.log(i); // 输出 3, 5, 7
}
for (let i of str) {
   console.log(i); // 输出 'h', 'e', 'l', 'l', 'o'
}

需要注意的是,请不要在生成器中使用 for……of,即便 for……of 循环提前终止。在退出循环后,生成器被关闭,并尝试再次迭代,不会产生任何进一步的结果。

4. for in
for…in 会在对象的所有可枚举属性上迭代指定的变量。对于每个不同的属性,for…in 语句除返回数字索引外,还将返回用户定义的属性的名称。
因此,在遍历数组时最好使用带有数字索引的传统 for 循环。 因为 for…in 语句还会迭代除数组元素之外的用户定义属性,就算我们修改了数组对象(例如添加自定义属性或方法),依然如此。

const details = {firstName: 'john', lastName: 'Doe'};
let fullName = '';
for (let i in details) {
    fullName += details[i] + ' '; // fullName: john doe
}
  1. for…of 和 for…in for…of 和 for…in 之间的主要区别是它们迭代的内容。
  2. for…in 循环遍历对象的属性,而for…of 循环遍历可迭代对象的值。
let arr= [4, 5, 6];
for (let i in arr) {
   console.log(i); // '0', '1', '2'
}
for (let i of arr) {
   console.log(i); // '4', '5', '6'
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值