广告
返回顶部
首页 > 资讯 > 前端开发 > html >如何理解es6箭头
  • 369
分享到

如何理解es6箭头

2024-04-02 19:04:59 369人浏览 薄情痞子
摘要

这篇文章给大家介绍如何理解es6箭头,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在es6中,箭头“=>”指的是箭头函数,是一种函数的简写方法,它将原函数的“function”关

这篇文章给大家介绍如何理解es6箭头,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

在es6中,箭头“=>”指的是箭头函数,是一种函数的简写方法,它将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体;例语句“v=>v;”,就相当于“function (v){return v;}”。

教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

ES6标准新增了一种新的函数:Arrow Function(箭头函数)。

基础语法

通常函数的定义方法

var fn1 = function(a, b) {
    return a + b
}

function fn2(a, b) {
    return a + b
}

使用ES6箭头函数语法定义函数,将原函数的“function”关键字和函数名都删掉,并使用“=>”连接参数列表和函数体。

var fn1 = (a, b) => {
    return a + b
}

(a, b) => {
    return a + b
}

当函数参数只有一个,括号可以省略;但是没有参数时,括号不可以省略。

// 无参
var fn1 = function() {}
var fn1 = () => {}

// 单个参数
var fn2 = function(a) {}
var fn2 = a => {}

// 多个参数
var fn3 = function(a, b) {}
var fn3 = (a, b) => {}

// 可变参数
var fn4 = function(a, b, ...args) {}
var fn4 = (a, b, ...args) => {}

箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种只包含一个表达式,省略掉了{ ... }和return。还有一种可以包含多条语句,这时候就不能省略{ ... }和return

() => return 'hello'
(a, b) => a + b
(a) => {
  a = a + 1
  return a
}

如果返回一个对象,需要特别注意,如果是单表达式要返回自定义对象,不写括号会报错,因为和函数体的{ ... }有语法冲突。

注意,用小括号包含大括号则是对象的定义,而非函数主体

x => {key: x} // 报错
x => ({key: x}) // 正确

箭头函数看上去是匿名函数的一种简写,但实际上,箭头函数和匿名函数有个明显的区别:箭头函数内部的this是词法作用域,由上下文确定。(词法作用域就是定义在词法阶段的作用域。换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变 。)

非箭头函数

如何理解es6箭头

现在,箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者Person

如何理解es6箭头

由于this在箭头函数中已经按照词法作用域绑定了,所以,用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入的第一个参数被忽略

javascript中的每一个Function对象都有一个apply()方法和一个call()方法

apply调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.apply(A, arguments);即A对象调用B对象的方法。func.apply(thisArg, [argsArray])
call调用一个对象的一个方法,用另一个对象替换当前对象。例如:B.call(A, args1,args2);即A对象调用B对象的方法。func.call(thisArg, arg1, arg2, ...)

详见《JavaScript中apply()和call()的区别和应用》

如何理解es6箭头

非箭头函数,调用call()时打印的数据

如何理解es6箭头

使用箭头函数之后,不再需要以前hack的写法,var that = this。但不能盲目的使用ES6箭头函数,请看下一节《正确使用箭头函数——什么时候不该用ES6箭头函数》。

总结

  • 类似于匿名函数,在某些情况下使用,可减少代码量

  • 代码简洁,this提前定义

  • 代码太过简洁,导致不好阅读

  • this提前定义,导致无法使用js进行一些在ES5里面看起来非常正常的操作(若使用箭头函数,在监听点击事件的回调函数中,就无法获取到当前点击的元素咯,详见《正确使用箭头函数——什么时候不该用ES6箭头函数》)

  • 总的来说,箭头函数只是一种函数的简写,有其利弊,可用可不用,看大家心情,当然也得用的正确

关于如何理解es6箭头就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 如何理解es6箭头

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

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

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 如何理解es6箭头
    这篇文章给大家介绍如何理解es6箭头,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在es6中,箭头“=>”指的是箭头函数,是一种函数的简写方法,它将原函数的“function”关...
    99+
    2022-10-19
  • ES6箭头函数如何使用
    本篇内容介绍了“ES6箭头函数如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介箭头函数表达式的语...
    99+
    2022-10-19
  • 关于ES6中的箭头函数超详细梳理
    目录一、箭头函数的介绍1.1 什么是箭头函数1.2 基本语法1.3 箭头函数的参数1.4 箭头函数的函数体二、箭头函数的this指向规则三、箭头函数的arguments规则3.1 箭...
    99+
    2022-11-13
    es6箭头函数详解 es6箭头函数作用 es6 箭头
  • visio如何画箭头
    这篇“visio如何画箭头”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“visio如何画箭头”文章吧。visio画箭头的方法...
    99+
    2023-07-02
  • powerdesigner如何使用箭头
    这篇文章主要讲解了“powerdesigner如何使用箭头”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“powerdesigner如何使用箭头”吧! po...
    99+
    2023-04-06
    powerdesigner
  • ES6箭头函数、rest参数、扩展运算符和Symbol如何使用
    今天小编给大家分享一下ES6箭头函数、rest参数、扩展运算符和Symbol如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文...
    99+
    2022-10-19
  • windows中coreldraw如何画箭头
    本篇内容介绍了“windows中coreldraw如何画箭头”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2022-12-01
    windows coreldraw
  • win10黑屏只有鼠标箭头如何解决
    本篇内容主要讲解“win10黑屏只有鼠标箭头如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win10黑屏只有鼠标箭头如何解决”吧!在键盘上按下【Ctrl+Alt+DEL】调出操作界面,选...
    99+
    2023-06-27
  • win10开机只有鼠标箭头如何解决
    这篇文章主要介绍“win10开机只有鼠标箭头如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10开机只有鼠标箭头如何解决”文章能帮助大家解决问题。win10开机只有鼠标箭头解决方法:操作...
    99+
    2023-07-01
  • 电脑黑屏有鼠标箭头如何解决
    本文小编为大家详细介绍“电脑黑屏有鼠标箭头如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“电脑黑屏有鼠标箭头如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。解决方法按下“ctrl+alt+delet...
    99+
    2023-07-01
  • win7如何去除图标箭头
    要去除Windows 7上的图标箭头,可以按照以下步骤操作: 打开注册表编辑器。点击开始菜单,然后在搜索栏中输入“regedit...
    99+
    2023-10-21
    win7
  • win11如何去除快捷箭头
    这篇文章主要讲解了“win11如何去除快捷箭头”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win11如何去除快捷箭头”吧!方法一: 1、按下键盘上的“win+r”快捷键打开运行,输入“re...
    99+
    2023-07-01
  • Win11软件箭头如何去除
    要去除Win11软件箭头,您可以按照以下步骤操作:1. 打开“运行”对话框,方法是按下Win + R快捷键。2. 输入“regedi...
    99+
    2023-09-01
    Win11
  • JavaScript如何使用箭头函数
    这篇文章主要讲解了“JavaScript如何使用箭头函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript如何使用箭头函数”吧!箭头函数在E...
    99+
    2022-10-19
  • 电脑鼠标箭头不停闪烁如何解决
    如果电脑鼠标箭头不停闪烁,可以尝试以下解决方法:1. 检查鼠标连接:确保鼠标连接到电脑的USB端口上,并且连接稳定。如果使用无线鼠标...
    99+
    2023-08-20
    电脑
  • css向上的箭头如何实现
    这篇文章主要介绍“css向上的箭头如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css向上的箭头如何实现”文章能帮助大家解决问题。具体操作方法:首先创建一个html文件。在html文件中添加...
    99+
    2023-07-04
  • win11图标小箭头如何取消
    今天小编给大家分享一下win11图标小箭头如何取消的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。方法一: 首先我们点击下方的...
    99+
    2023-07-01
  • 如何实现左右箭头图标
    今天小编给大家分享一下如何实现左右箭头图标的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。左右箭头图标什么是csscss是一种...
    99+
    2023-07-04
  • 电脑黑屏后只有鼠标箭头如何解决
    这篇文章主要讲解了“电脑黑屏后只有鼠标箭头如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“电脑黑屏后只有鼠标箭头如何解决”吧!电脑黑屏后只有鼠标箭头的解决方法/步骤:在键盘上同时按下s...
    99+
    2023-06-27
  • win10电脑黑屏只有鼠标箭头如何解决
    这篇文章主要介绍“win10电脑黑屏只有鼠标箭头如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10电脑黑屏只有鼠标箭头如何解决”文章能帮助大家解决问题。win10电脑黑屏只有鼠标箭头的...
    99+
    2023-07-01
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作