ES6 箭头函数 Arrow Function

news/2024/11/24 6:06:14/

 

前言
1. ES6 前定义函数
2. ES6 箭头函数语法
3. ES6 箭头函数返回值
4. 箭头函数中的 this 到底是谁 ?

前言


ES6 新增了一种新的函数: 箭头函数 Arrow Function

箭头函数相当于匿名函数,简化了函数定义,将原函数的 function 关键字和函数名都删掉,并使用 => 连接参数和函数体

1. ES6 前定义函数


 
  1. // function 关键字
  2. function add(num1, num2) {
  3. return num1 + num2;
  4. }
  5. // 函数表达式
  6. const sub = function (num1, num2) {
  7. return num1 - num2;
  8. }
  9. // 对象字面量中定义函数
  10. const obj = {
  11. mul: function (num1, num2) {
  12. return num1 * num2;
  13. },
  14. div(num1, num2) {
  15. return num1 / num2;
  16. }
  17. }

2. ES6 箭头函数语法


当没有参数时, 可以定义为以下形式

 
  1. const test = () => {
  2. }

当只有一个参数时,括号可以省略。但是,如果这个参数是解构赋值,括号不能省略

 
  1. const test = res => {
  2. console.log(res);
  3. }
  4. const test = ({ code, msg }) => {
  5. console.log(res);
  6. }

当有多个参数时,括号不能省略

 
  1. const test = (num1, num2) => {
  2. return num1 + num2;
  3. }

当函数体只有一行语句时,可以省略 {}

 
  1. const test = (num1, num2) => num1 + num2;

使用箭头函数的场景: 闭包函数

 
  1. setTimeout(() => {
  2. }, 1000)

3. ES6 箭头函数返回值


当方法体只有一条语句时可以省略花括号

 
  1. // 普通写法
  2. // const math = (num1, num2) => {
  3. // return num1 + num2
  4. // }
  5. // 省略 {}
  6. const math = (num1, num2) => num1 + num2

当箭头函数需要返回一个数据时,可以使用下面写法

返回值数据类型是 字符串,数组,布尔值,=> 后面直接跟上数据即可,返回值如果是键值对形式的对象,需要使用 ({})

 
  1. const demo = {
  2. // 返回值是 []
  3. a1: () => [],
  4. // 返回值是 'abc'
  5. a2: () => 'abc',
  6. // 返回值是 true
  7. a3: () => true,
  8. // 返回值是键值对的对象时 需要使用 ({})
  9. // 因为使用 () => {} , {} 会被当作方法体的定界符
  10. a4: () => ({
  11. name: 'liang'
  12. }),

箭头函数直接返回一个数据的写法,多用于 vue,uniapp 开发中

 
  1. export default {
  2. name: "my-search",
  3. props: {
  4. config: {
  5. type: Object,
  6. default: () => ({
  7. height: 36,
  8. }),
  9. },
  10. },
  11. }

4. 箭头函数中的 this 到底是谁 ?


箭头函数中的 this 指向问题标准答案: 向外层作用域中一层层查找 this,直到有 this 的定义


http://www.ppmy.cn/news/6197.html

相关文章

VSCode 最全实用插件

一、必备插件 🌾Chinese(中文) Settings Sync(配置同步到云端) 可以让我们的vscode配置同步到云端,当我们跟换电脑或者再次安装vscode的时候,只需要登录账号即可同步配置了 wakatime&#xf…

python:写你的第一个爬虫代码

什么是爬虫 爬虫spider,是指向网站或者网络发出请求,获取资源后分析并提取对自己有用的数据的程序。 request:是指用户将自己的信息通过浏览器发送给服务器。 response:服务器收到用户的请求分析后,返回的数据。 注意&…

等保2.0参与医院网络安全管理的重要性

随着现代医院 IT 技术架构的演变、新兴技术的引入,来自医院内外部的各种安全风险不断出现,对医院网络安全提出了更多挑战,医院网络安全在技术层面和管理层面都亟待完善。为此,借鉴相关法律法规、行业标准等,提出提升现…

LeetCode Hot 100~Day2

目录 三数之和 电话号码的字母组合 括号生成 合并k个升序链表 下一个排列 搜索旋转排序数组 在排序数组中查找元素的第一个和最后一个位置 组合总数 全排列 旋转图像 三数之和 题目链接:15.三数之和 示例 输入:nums [-1,0,1,2,-1,-4] 输…

python基础(25):StringIO和BytesIO 序列化

StringIO和BytesIO - 廖雪峰的官方网站 (liaoxuefeng.com) 目录 StringIO BytesIO 小结 操作文件和目录 环境变量 操作文件和目录 小结 练习 序列化 JSON JSON进阶 练习 小结 StringIO 很多时候,数据读写不一定是文件,也可以在内存中读写…

科研信息基础设施的运行治理模式研究

摘要 【目的】科研信息基础设施建设是支持科技创新、社会治理与全球合作的坚实基础,需要配套强有力的治理模式来推进实施。【方法】本研究围绕科研信息基础设施,构建了包括组织模式、服务模式和运营模式在内的三维治理框架,遴选了国内外十余个案例进行比较分析。【结果】科研…

[思维模式-12]:《如何系统思考》-8- 工具篇 - 因果回路图/系统循环图/系统控制图,系统思考的关键工具

目录 第1章 因果回路图概述 1.1 什么是因果回路图 1.2 反馈回路 第2章 因果图的组成 2.1 回路 2.2 变量 2.4 连接 > 不同变量之间的函数关系 2.5 增强回路 2.6 调节回路 2.7 时间延时 第3章 因果图的用途与应用 3.1 因果图的价值 3.2 因果图的用途 第4章 因果图…

SpringBoot 结合 MyBatis-Plus 配置多数据源以及结合 p6spy 打印 SQL 日志

title: SpringBoot 结合 MyBatis-Plus 配置多数据源以及结合 p6spy 打印 SQL 日志 date: 2022-12-23 11:23:16 tags: SpringBootMyBatis-Plus categories:开发技术及框架 cover: https://cover.png feature: false 1. 配置多数据源 官网:多数据源 | MyBatis-Plus …