返回顶部
首页 > 资讯 > 前端开发 > VUE >JavaScript中for循环怎么用
  • 150
分享到

JavaScript中for循环怎么用

2024-04-02 19:04:59 150人浏览 安东尼
摘要

这篇文章给大家分享的是有关javascript中for循环怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言对于for循环,相信大家再常用不过了。但是这回说下for循环是因

这篇文章给大家分享的是有关javascript中for循环怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

前言

对于for循环,相信大家再常用不过了。但是这回说下for循环是因为看代码时我居然没有看明白一个for循环的意思,真是不应该啊。

这个for循环是这么写的:

for (var i = 0, rule; rule = rules[i++];) {
 //do something
}

这个写法是什么意思呢?后面再说,现卖个关子,这个写法我感觉还是挺好的。

for循环写法对效率的影响

说上面那段代码之前,先说一下for循环的效率问题。在接触js时关于for循环的写法和对效率影响的文章挺不少的。但总的来说对于for循环的写法有这么两种:

  1. 不写声明变量的写法:for(var i = 0;i<arr.length;i++){}

  2. 写声明变量的写法:for(var i = 0,len = arr.length;i < len;i++){}

除了for循环还有forEach() ,也有文章说forEach()效率最高,推荐用forEach()写法,那么到底哪个效率高呢?做个测试来看看吧。

测试方案

总的测试方案如下:

  1. 做一个容纳4千万的测试数组变量。

  2. 分别用两种写法的for循环和foreach对这个测试变量进行遍历。

  3. 在同一台稳定机器上,进行10次测试,最后取平均值。

  4. 测试环境:CPU:Inter(R) Core i5-3210M,RAM:12GM,system:win10(x64)

测试流程

制作测试变量

先用while循环做个测试变量出来,这个很简单,具体如下:

var testArrs = [],
 i = 0;
while(i<40000000){
 testArrs.push(i);
 i++;
}

编写相应测试函数

测量和执行时间的代码,我用的是console.time()console.timeEnd()来进行测试。

针对这个三个for循环,先做出三个函数出来,他们分别是

foreach循环测试:

function testForeach(testArrs){
 console.time('foreach');
 var newArrs = [];
 testArrs.forEach(function(i){
 newArrs.push(i);
 });
 console.timeEnd('foreach');
}

没有声明变量的for循环:

function testnodeclare(testArrs){
 console.time('no declare');
 var newArrs = [];
 for(var i = 0;i<testArrs.length;i++){
 newArrs.push(i);
 }
 console.timeEnd('no declare');
}

有变量声明的写法

function testUseDeclare(testArrs){
 console.time('use declare');
 var newArrs = [];
 for(var i = 0,len = testArrs.length;i<len;i++){
 newArrs.push(i);
 }
 console.timeEnd('use declare');
}

执行测试函数

执行测试函数这里很简单啦,就是调用函数就可以了

testForeach(testArrs);
testNoDeclare(testArrs);
testUseDeclare(testArrs);

测试结果

经过10次测试,得到了以下结果

foreach不写声明写声明
2372.891ms672.530ms743.974ms
2431.821ms710.275ms805.676ms
2422.448ms729.287ms741.014ms
2330.894ms730.200ms755.390ms
2423.186ms703.255ms769.674ms
2379.167ms689.811ms741.040ms
2372.944ms712.103ms710.524ms
2316.005ms726.518ms726.522ms
2535.289ms733.826ms747.427ms
2560.925ms793.680ms817.098ms
平均值平均值平均值
2414.56ms720.15ms755.83ms

不知道结果有没有让你出乎意料呢?没想到最平常的写法效率最高,为什么?我也没想明白,谁知道就告诉我吧,但我估计写声明的写法是没有意义的。因为len = arr.length这个arr.length可能已经缓存起来了,所以我们在声明个len变量来存储是没有意义的。

最后附上全部测试代码,复制到自己的电脑上直接就可以测试了,要是有不合理的地方请告诉我吧

var testArrs = [],
 i = 0;
while(i<40000000){
 testArrs.push(i);
 i++;
}
function testForeach(testArrs){
 console.time('foreach');
 var newArrs = [];
 testArrs.forEach(function(i){
 newArrs.push(i);
 });
 console.timeEnd('foreach');
}
function testNoDeclare(testArrs){
 console.time('no declare');
 var newArrs = [];
 for(var i = 0;i<testArrs.length;i++){
 newArrs.push(i);
 }
 console.timeEnd('no declare');
}
function testUseDeclare(testArrs){
 console.time('use declare');
 var newArrs = [];
 for(var i = 0,len = testArrs.length;i<len;i++){
 newArrs.push(i);
 }
 console.timeEnd('use declare');
}
testForeach(testArrs);
testNoDeclare(testArrs);
testUseDeclare(testArrs);

for循环的特殊写法

下面说下文章刚开始说的那个我没看懂的代码,说之前先温习下再熟悉不过的for循环语法。for循环的基本语法是:

for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
  1. 语句1:在循环(代码块)开始前执行

  2. 语句2:定义运行循环(代码块)的条件

  3. 语句3:在循环(代码块)已被执行之后执行

如果我们用for循环要输出1到10,我们可以这么写:

for(var i=0;i<10;i++){
console.log(i);
}

但是!根据上面的语法说明,我们也可以写成这样

for(var i=10;i--;){
console.log(i);
}

刚开始看的时候我也很疑惑,怎么能这么写?语句2放的是循环条件,i–是什么判断条件。其实不然,在语句2中,如果返回true循环会继续执行。在js中0,null,undefined,false,'',””作为条件判断时,其结果为false,也就说当i–到0的时候就是false,循环就终止了。

再回到文章开头的代码

for (var i = 0, rule; rule = rules[i++];) {
 //do something
}

这个rule = rules[i++]就是判断条件,当成为undefined时就会终止循环啦。所以这段代码换成普通写法就是这样的:

for(var i = 0;i < rules.length;i++){
 var rule = rules[i]
}

其实就是把判断和赋值放到一起了,一边循环一边赋值。是不是挺简单?

感谢各位的阅读!关于“JavaScript中for循环怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: JavaScript中for循环怎么用

本文链接: https://lsjlt.com/news/78027.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript中for循环怎么用
    这篇文章给大家分享的是有关JavaScript中for循环怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言对于for循环,相信大家再常用不过了。但是这回说下for循环是因...
    99+
    2024-04-02
  • JavaScript中的for循环怎么用
    这篇文章主要介绍“JavaScript中的for循环怎么用”,在日常操作中,相信很多人在JavaScript中的for循环怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • JavaScript for循环怎么定义
    这篇文章主要介绍“JavaScript for循环怎么定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript for循环怎么定义”文章能帮助大家解决...
    99+
    2024-04-02
  • JavaScript中的for循环与双重for循环详解
    for循环 for循环就是对数组的元素进行循环。 语法: for (初始化变量; 条件表达式; 迭代语句) {      需要执行的代码块...
    99+
    2024-04-02
  • JavaScript for循环的用法
    这篇文章主要介绍“JavaScript for循环的用法”,在日常操作中,相信很多人在JavaScript for循环的用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ja...
    99+
    2024-04-02
  • php中for循环怎么用
    这篇文章主要为大家展示了“php中for循环怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php中for循环怎么用”这篇文章吧。for循环//正常写法 f...
    99+
    2024-04-02
  • 怎么在JavaScript中使用for循环判断质数
    Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重复的;3、Set集合:不可重复;4、Map映射:无序,键唯一,值不唯一。怎么在JavaScript中使用for循环判断质数?...
    99+
    2023-06-14
  • MySQL中怎么使用WHILE循环模拟FOR循环
    在MySQL中,没有直接的FOR循环语句,但是可以使用WHILE循环来模拟一个FOR循环。可以使用一个变量来充当计数器,然后在WHI...
    99+
    2024-04-30
    MySQL
  • VB.NET中For/Next循环怎么用
    这篇文章给大家分享的是有关VB.NET中For/Next循环怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VB.NET开发平台的应用,在编程领域中占据着非常大的优势。开发人员可以使用这款语言实现许多功能需求...
    99+
    2023-06-17
  • Linux shell中for循环怎么用
    这篇文章主要介绍“Linux shell中for循环怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux shell中for循环怎么用”文章能帮助大家解决问题。在Linux shell 中...
    99+
    2023-06-28
  • python for循环怎么用
    for 循环是一种用于遍历序列中每个元素的迭代结构。它的语法为:for variable in sequence:循环体(在每次迭代中执行)如果未被终止,则执行 else 子句(可选) ...
    99+
    2024-05-22
    python 可迭代对象
  • C语言中for循环与while循环怎么使用
    本文小编为大家详细介绍“C语言中for循环与while循环怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言中for循环与while循环怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、单层f...
    99+
    2023-07-02
  • Python3中的for循环怎么使用
    本篇内容介绍了“Python3中的for循环怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一·ra...
    99+
    2024-04-02
  • 怎么在shell中使用for循环
    这篇文章将为大家详细讲解有关怎么在shell中使用for循环,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码如下:#!/bin/shi=1SUM=`sed -n ...
    99+
    2023-06-09
  • JavaScript的For循环如何运用
    这篇文章主要介绍“JavaScript的For循环如何运用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript的For循环如何运用”文章能帮助大家解决...
    99+
    2024-04-02
  • JavaScript里如何使用for循环
    今天小编给大家分享一下JavaScript里如何使用for循环的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。JavaScri...
    99+
    2023-07-06
  • shell的for循环怎么用
    这篇文章主要介绍了shell的for循环怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇shell的for循环怎么用文章都会有所收获,下面我们一起来看看吧。for循环一般格式为:for var&n...
    99+
    2023-06-27
  • Scala for循环怎么使用
    本篇内容介绍了“Scala for循环怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基本语法:变量,变量的定义:不可变:val a ...
    99+
    2023-06-02
  • C语言for循环嵌套for循环方法怎么应用
    这篇文章主要介绍“C语言for循环嵌套for循环方法怎么应用”,在日常操作中,相信很多人在C语言for循环嵌套for循环方法怎么应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言for循环嵌套for循环...
    99+
    2023-06-30
  • ES6中for循环和Map、Set怎么用
    这篇文章给大家分享的是有关ES6中for循环和Map、Set怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:现在大家先想一想,如果要你遍历一个数组的元素,你会选择如...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作