我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JS中六种For循环怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JS中六种For循环怎么使用

这篇文章主要介绍“JS中六种For循环怎么使用”,在日常操作中,相信很多人在JS中六种For循环怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS中六种For循环怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    for 循环在平时开发中使用频率最高的,前后端数据交互时,常见的数据类型就是数组和对象,处理对象和数组时经常使用到 for 遍历,因此下班前花费几分钟彻底搞懂这 5 种 for 循环。它们分别为:

    • for

    • for ... in

    • for ... of

    • for await .. of

    • forEach

    • map

    一、各个 for 介绍

    1、for

    for 循环是出现最早,也是应用最普遍的一个遍历,能够满足绝大多数的遍历。可以遍历 数组、对象、字符串,示例:

    // 遍历数组var arr = [1, 2, 3]for (var i = 0; i < arr.length; i++){  console.log(arr[i]);}//遍历对象var obj = {  job: 'web worker',  name:'前端代码女神'}for (var i = 0,keys = Object.keys(obj); i< keys.length; i++){  console.log(obj[keys[i]])}//遍历字符串let str = 'abc'for (var i = 0; i < str.length; i++){  console.log(str[i])}

    2、for ... in

    for ... in 是在 ES5 中新增的,以任意顺序迭代一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。

    // 遍历数组var arr = [1, 2, 3]for (var i in arr ){  console.log(i);//0 1 2  console.log(arr[i]);//1 2 3}//遍历对象var obj = {  job: 'web worker',  name:'前端代码女神'}for (var key in obj){  console.log(key)// job name  console.log(obj[key])// web worker  前端代码女神}//遍历字符串let str = 'abc'for (var i in str){  console.log(i) // 0 1 2  console.log(str[i]) // a b c}

    3、for ... of

    for ... of 语句在可迭代对象(包括 Array、Map、Set、String、TypedArray、arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。

    // 迭代 Arrayvar arr = [1, 2, 3]for (var val of arr ){  console.log(val);// 1 2 3}//迭代 Stringlet str = 'abc'for (var val of str){  console.log(val) // a b c}// 迭代 TypedArray - 一个类型化数组,描述了一个底层的二进制数据缓冲区!let iterable = new Uint8Array([0x00, 0xff]);for (let value of iterable) {  console.log(value);//0 255}// 迭代 Map - 对象保存键值对,能够记住键的原始插入顺序let map = new Map([['a',1],['b',2]])for (let key of map) {  console.log('key',key)//['a',1] ['b',2] }for (let [key,value] of map) {  console.log(key) // a b  console.log(value) // 1 2}// 迭代 Setlet set = new Set([1,2,3,2,1])for (let val of set) {  console.log(val)// 1 2 3}

    4、for await...of

    创建一个循环,该循环遍历异步可迭代对象以及同步可迭代对象,包括内置的 String、Array,类数组对象(arguments 或 nodeList),TypedArray, Map, Set 和用户定义的异步/同步迭代器。它使用对象的每个不同属性的值调用要执行的语句来调用自定义迭代钩子。

    类似于 await 运算符一样,该语句只能在一个async function 内部使用。

    async function* asyncGenerator() {  var i = 0;  while (i < 3) {    yield i++;  }}(async function () {  for await (num of asyncGenerator()) {    console.log(num);// 0 1 2  }})();

    5、forEach

    forEach 是ES5版本发布的,按升序为数组中含有效值的每一项执行一次回调函数,那些已删除或者未初始化的项将被跳过(例如在稀疏数组上),一般认为是 普通for循环 的加强版。

    // 遍历数组var arr = [1, 2, 3]arr.forEach((item, index) => {  console.log(index);//0 1 2  console.log(item);// 1 2 3})//遍历对象var obj = {  job: 'web worker',  name:'前端代码女神'}var keys = Object.keys(obj)keys.forEach((key) => {  console.log(key)// job name  console.log(obj[key])// web worker  前端代码女神})

    6、map

    遍历时可以返回一个新数组,新数组的结果是原数组中每个元素都调用一次提供的函数后返回的值。

    // 遍历数组var arr = [1, 2, 3]let newArr = arr.map((item) => item * 2)console.log(newArr);//[2,4,6]

    二、多个 for 之间区别

    1、使用场景差异

    for循环是最早最原始的循环遍历语句,for 内部定义一个变量,按照条件进行循环遍历,通常是数组的长度,当超过长度时就停止循环,一般遍历的都是数组或类数组。遍历对象时,由于对象没有长度,所以使用 Object.keys() 获取对象的所有属性,以数组形式返回。

    for / in主要是用来遍历对象上的可枚举属性,包括原型对象上的属性,按任意顺序进行遍历,遍历对象时获取到的是属性的键值,遍历的是数组,数组的下标当做键值。

    for / of用于遍历可迭代对象的数据,包括 Array、Map、Set、String、TypedArray、arguments 对象等等。

    for await...of用于遍历异步可迭代对象,该语句只能在一个async function 内部使用。

    forEach 是 for 的加升级版,使用更简单,携带参数更多,但本质还是数组的循环,每个元素都执行一次回调,不会改变原数组。

    map是给原数组每个元素都执行一次回调,返回一个新数组,不会改变原数组。

    2、功能差异

    forEach、map 不支持跳出循环,其他不支持。

    for await ... of 能够支持异步操作,其他的不支持。

    对于纯对象的遍历, for ... in 枚举更方便。

    对于数组遍历,如果不需要索引,可以直接使用 for...of 获取值,还可支持 break 或 return ;如果还需要索引,使用 forEach 更适合,但不支持 return。

    如果是一个数组映射成另一个数组,使用 map 最合适。

    3、性能差异

    在测试环境、测试数据条件一致的情况下,性能排序为:

    for > for of > forEach > map > for in。

    for 因为没有额外的函数调用和上下文,所以性能是最快的。

    for ... of 具有 iterator 接口的数据结构,可以使用它来迭代成员,直接读取键值。

    forEach 是 for 的语法糖,还有许多的参数和上下文,因此会慢一些。

    map 因为它返回的是一个等长的全新数组,数组创建和赋值产生的性能开销较大。

    for...in 性能最差,因为需要列举对象的所有属性,有转化过程,开销比较大。

    三、for 的使用

    在项目开发中,我们应该根据实际需求,去选择一个合适的 for 遍历。以下是一些使用建议:

    • 如果需要把数据映射成另外一个数组,如变成对应布尔值,推荐使用 map ,不会修改原数组,使用语法简单。

    • 数组遍历时,可以使用 for 、forEach 或 for...of。

    • 遍历的是纯对象时,推荐使用 for ... in 。

    • 如果是需要对迭代器遍历,推荐使用 for ... of。

    • 如果是在数组中筛选符合条件的数组,使用 fillter 。

    到此,关于“JS中六种For循环怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    JS中六种For循环怎么使用

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    JS中六种For循环怎么使用

    这篇文章主要介绍“JS中六种For循环怎么使用”,在日常操作中,相信很多人在JS中六种For循环怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS中六种For循环怎么使用”的疑惑有所帮助!接下来,请跟
    2023-06-30

    MySQL中怎么使用WHILE循环模拟FOR循环

    在MySQL中,没有直接的FOR循环语句,但是可以使用WHILE循环来模拟一个FOR循环。可以使用一个变量来充当计数器,然后在WHILE循环中对计数器进行递增操作来模拟FOR循环的功能。以下是一个使用WHILE循环模拟FOR循环的示例:
    MySQL中怎么使用WHILE循环模拟FOR循环
    2024-04-30

    怎么在shell中使用for循环

    这篇文章将为大家详细讲解有关怎么在shell中使用for循环,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码如下:#!/bin/shi=1SUM=`sed -n $= tmp.txt` #
    2023-06-09

    C语言中for循环与while循环怎么使用

    本文小编为大家详细介绍“C语言中for循环与while循环怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言中for循环与while循环怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、单层f
    2023-07-02

    Scala for循环怎么使用

    本篇内容介绍了“Scala for循环怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基本语法:变量,变量的定义:不可变:val a
    2023-06-02

    python中append怎么在for循环使用

    在Python中,可以通过使用append()方法将元素添加到列表中。在for循环中使用append()方法的一种常见方法是将循环变量的值添加到列表中。以下是一个使用append()方法在for循环中将元素添加到列表的示例:pythonmy
    2023-10-18

    怎么在python中使用for…in循环

    这期内容当中小编将会给大家带来有关怎么在python中使用for…in循环,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python
    2023-06-14

    oracle中for循环语句怎么使用

    在Oracle数据库中,没有像其他编程语言那样直接的for循环语句。但是可以使用LOOP、EXIT和END LOOP来实现循环操作。下面是一个在Oracle中使用LOOP语句实现简单循环的示例:DECLAREi NUMBER := 1;
    oracle中for循环语句怎么使用
    2024-04-09

    map中for循环语句怎么使用

    在地图(Map)中,您可以使用forEach方法来遍历Map中的键值对。以下是一个示例代码,展示如何在Map中使用for循环语句:let myMap = new Map();myMap.set('1', 'o
    map中for循环语句怎么使用
    2024-03-11

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录