【JS进阶】ES6箭头函数、forEach遍历数组

文章目录

  • 前言
  • 一、箭头函数
    • 1.1 基本语法
    • 1.2 带参数的箭头函数
    • 1.3 this指针指向谁?
  • 二、forEach遍历数组
  • 总结


前言

随着JavaScript语言的不断发展,ES6(ECMAScript 2015)引入了许多新的语法和特性,其中箭头函数和forEach方法成为了开发者们经常使用的重要工具。箭头函数简化了函数的写法,提升了代码的可读性和简洁性;而forEach方法则为数组遍历提供了一种更为直观的方式。本文将深入探讨ES6箭头函数和forEach方法,介绍它们的基本用法和一些实际应用场景,帮助读者更好地理解和运用这两个强大的JavaScript特性。


一、箭头函数

1.1 基本语法

语法:

()=>{//函数体}

示例代码:

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>
<body>
</body>



<script>

    const fn = ()=>{
        console.log('fn')
    }

    fn()

</script>

</html>

在这里插入图片描述

1.2 带参数的箭头函数

(x,y,z,...)=>{//函数体}

当只有一个参的时候可以省略小括号
只有一行代码的时候可以省略大括号
只有一行代码的时候,可以省略return

示例代码:

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
            background-color: pink;
        }
    </style>
</head>
<body>
</body>



<script>

    const fn = (x)=>{
        console.log(x)
    }

    fn(1)

</script>

</html>

1.3 this指针指向谁?

JavaScript的箭头函数的this指向在定义函数时确定,并且在整个函数生命周期中保持不变。与普通函数不同,箭头函数的this值取决于函数所在的上下文,而不是调用它的方式。

具体来说:

箭头函数没有自己的this:箭头函数内部没有this绑定,它会从定义它的作用域链的上一层继承this。这意味着箭头函数的this与外层的非箭头函数的this保持一致。

词法作用域决定this:箭头函数的this值是词法作用域的this,而不是运行时的this。这意味着箭头函数的this取决于它所在的代码块,而不是调用方式。

这种行为与普通函数不同,普通函数的this在运行时才确定,并且取决于函数被调用时的上下文。这样的设计使得箭头函数在某些情况下更为简洁和直观,尤其是在需要访问外部作用域的this时。

举个例子:

function Person() {
  this.age = 0;

setInterval(() => {
  // 箭头函数的this指向Person函数的this
  this.age++; 
  console.log(this.age);
}, 1000);
}

const person1 = new Person();

在这个例子中,箭头函数内部的this指向Person函数的this,因此每秒钟age会递增,并且this.age与person1.age指向同一个值。

二、forEach遍历数组

语法格式:

被遍历的数组.forEach((item,index)=>{
	//item是元素
	//index是下标
})

注意

  1. forEach 主要是遍历数组
  2. 参数当前数组元素是必须要写的,
    索引号可选。

示例代码:

// 创建一个数组
const fruits = ['apple', 'banana', 'orange', 'grape'];

// 使用forEach遍历数组,并输出每个元素
fruits.forEach(function(fruit) {
  console.log(fruit);
});


总结

ES6箭头函数和forEach方法作为现代JavaScript中的重要特性,为开发者提供了更便捷、简洁的编码方式。箭头函数不仅让函数定义更加简洁,还解决了传统函数中this关键字引起的一些问题,使得代码更易读、易维护。而forEach方法则为数组的遍历提供了一种更为语义化的选择,使得代码更具可读性。通过深入了解和熟练使用这两个特性,开发者能够提高代码的效率,写出更为现代化和优雅的JavaScript代码。在进阶的道路上,ES6箭头函数和forEach方法无疑是必备的利器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/355892.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Linux权限的概念 -- 详解

一、Linux 中的用户 Linux 下有两种用户&#xff1a; 超级用户&#xff08;root&#xff09;&#xff1a;可以在 Linux 系统下做任何事情&#xff0c;不受限制。普通用户&#xff1a;在 Linux 下做有限的事情。 超级用户的命令提示符是 “#”&#xff0c;普通用户的命令提示符…

【Javaweb程序】【C00155】基于SSM的旅游旅行管理系统(论文+PPT)

基于SSM的旅游旅行管理系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于SSM的旅游旅行管理系统 本系统分为前台系统模块、管理员模块、用户模块以及商家模块 其中前台系统模块的权限为&#xff1a;当游客打开系统的网址后…

javax.servlet.http包

javax.servlet.http包 javax.srvlet.http包是对javax.servlet包的扩展。该包的类和接口处理使用HTTP进行通信的servlet。这些servlet也称为HTTP Servlet。您需要扩展HttpServlet类来开发HTTP Servlet。javax.servlet.http包经常使用的接口包括: HttpServletRequest接口HttpSe…

Flutter之环境搭建(小白教程)

这个章节我们学习如何安装Flutter&#xff0c;配置 Flutter 、Android Studio 环境&#xff0c;做开发的前置工作。 环境搭建有点麻烦&#xff0c;特别是Android环境的安装&#xff0c;没有代理简直就是噩梦&#xff0c;要有耐心一起加油&#xff01; Flutter 官网地址 一. 操…

ATT汇编

指令后缀 AT&T格式的汇编指令有不同的后缀 其中 b表示byte&#xff0c;字节 w表示word&#xff0c;字/两字节 l表示long&#xff0c;32位系统下的long是4字节 q表示quad&#xff0c;意味四重&#xff0c;表示4个字/8字节 寄存器用途 参见 AT&T的汇编世界 - Gemfield…

(自用)learnOpenGL学习总结-高级OpenGL-立方体贴图

ok终于来到了立方体贴图了&#xff0c;在这里面我们可以加入好看的天空包围盒&#xff0c;这样的画我们的背景就不再是黑色的了&#xff01; 首先&#xff0c;立方体贴图和前面的sampler2D贴图一样&#xff0c;不过是6个2D组成的立方体而已。 那么为什么要把6个组合在一起呢&…

81.网游逆向分析与插件开发-背包的获取-装备栏数据结构的逆向分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;自动化助手显示物品数据-CSDN博客 然后游戏中有弓箭&#xff0c;弓箭有数量&#xff0c;可以作为突破口&#xff0c;也可以使用物品id 获取弓的方式 获取弓箭的方式 然后搜索250 然后搜索出一个 然后…

【智能家居入门之微信小程序控制下位机】(STM32、ONENET云平台、微信小程序、HTTP协议)

实现微信小程序控制单片机外设动作 一、使用ONENET可视化组件控制单片机外设动作二、使用微信小程序控制单片机外设动作三、总结 本篇博客话接上文&#xff1a; https://blog.csdn.net/m0_71523511/article/details/135892908 上一篇博客实现了微信小程序接收单片机上传的数据…

《吐血整理》高级系列教程-吃透Fiddler抓包教程(30)-Fiddler如何抓取Android7.0以上的Https包-番外篇

1.简介 通过宏哥前边几篇文章的讲解和介绍想必大家都知道android7.0以上&#xff0c;有android的机制不在信任用户证书&#xff0c;导致https协议无法抓包。除非把证书装在系统信任的证书里&#xff0c;此时手机需要root权限。但是大家都知道root手机是非常繁琐的且不安全&…

开源大数据集群部署(七)Freeipa卸载

作者&#xff1a;櫰木 1、命令卸载 卸载FreeIPA服务器和客户端的命令&#xff0c;以及清理相关残留文件和卸载相关软件包。 ipa-server-install -U --uninstall #服务端卸载 ipa-client-install -U --uninstall #客户端卸载 #删除残留文件&#xff0c;避免二次安装失败 cd /va…

数据可视化工具JSON Crack结合内网穿透实现公网访问

文章目录 1. 在Linux上使用Docker安装JSONCrack2. 安装Cpolar内网穿透工具3. 配置JSON Crack界面公网地址4. 远程访问 JSONCrack 界面5. 固定 JSONCrack公网地址 JSON Crack 是一款免费的开源数据可视化应用程序&#xff0c;能够将 JSON、YAML、XML、CSV 等数据格式可视化为交互…

Prometheus 监控系统的初步了解与系统搭建

目录 目录 目录 前言 Prometheus的相关知识 Prometheus特点 Prometheus的存储引擎&#xff1a;TSDB Prometheus的组件 1.核心组件&#xff1a;prometheus server Prometheus server又分为三个部分&#xff1a; 2.exports 3.client Library 4.cadvisor 5.blackbox-ex…

Java毕业设计-基于jsp+servlet的人事管理系统-第79期

获取源码资料&#xff0c;请移步从戎源码网&#xff1a;从戎源码网_专业的计算机毕业设计网站 项目介绍 基于jspservlet的人事管理系统&#xff1a;有配套报告文档&#xff0c;前端 jsp、jquery&#xff0c;后端 servlet、jdbc&#xff0c;集成员工档案管理、公告浏览、请假信…

H5项目使用@microsoft/fetch-event-source

前言&#xff1a; 在microsoft/fetch-event-source 文档中&#xff0c;没有介绍在项目中使用script 引入&#xff0c;只介绍了通过npm 引入的方式&#xff1b;项目的接口又是 post 方式的流式接口。 解决方式&#xff1a; 借助 webpack 工具 实现步骤&#xff1a; 1、初始化…

vue预览pdf文件的几种方法

文章目录 vue预览pdf集中方法方法一&#xff1a;方法二&#xff1a;展示效果&#xff1a;需要包依赖&#xff1a;代码&#xff1a; 方法三&#xff1a;展示效果&#xff1a;需要包依赖&#xff1a;代码&#xff1a;自己调参数&#xff0c;选择符合自己的 vue预览pdf集中方法 我…

方差与协方差之间的区别?

方差和协方差都是用来衡量随机变量之间关系的统计量&#xff0c;但它们的计算方式和含义有所不同。 方差&#xff08;Variance&#xff09;&#xff1a;方差是描述数据集合离散程度的统计量&#xff0c;它衡量了数据点与均值之间的平均距离。 方差越大&#xff0c;表示数据点越…

【AI大模型应用开发】1.3 Prompt攻防(安全) 和 Prompt逆向工程

随着GPT和Prompt工程的大火&#xff0c;随之而来的是隐私问题和安全问题。尤其是最近GPTs刚刚开放&#xff0c;藏在GPTs后面的提示词就被网友们扒了出来&#xff0c;甚至直接被人作为开源项目发布&#xff0c;一点安全和隐私都没有&#xff0c;原作者的收益也必然受到极大损失……

图灵日记之java奇妙历险记--抽象类和接口

目录 抽象类概念抽象类语法 接口概念规则使用特性实现多个接口接口的继承接口使用实例Clonable接口和深拷贝抽象类和接口的区别 Object类 抽象类 概念 在面向对象的概念中,所有对象都是通过类来描述的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够…

Axios使用方法详解,从入门到进阶

目录 &#x1f333; Axios的诞生 &#x1f333; Axios的介绍 定义 原理 特性 浏览器支持情况 如何安装 &#x1f333; Axios的使用 ◼️ 创建vue项目 ◼️ Axios的基础用法&#xff08;get、post、put 等请求方法&#xff09; get方法 post方法 put和patch方法 …

Jenkins打包、发布、部署

目录 前言 一、安装jdk 二、安装maven 三、安装git 四、安装jenkins 五、访问jenkins 六、创建用户 七、配置jenkins 八、执行 总结 前言 服务器&#xff1a;CentOS 7.9 64位 jdk&#xff1a;1.8 maven&#xff1a;3.9.1 git&#xff1a;git version 1.8.3.1 jenkins&a…