JavaScript箭头函数介绍

举报
搞前端的半夏 发表于 2022/01/24 21:15:07 2022/01/24
【摘要】 ES6引入了箭头函数。箭头函数主要有三个有点:更简洁的语法隐式return当在一个函数中使用箭头函数的时候并不会重新绑定this的值。 简单使用例如有下面一个数组:const names = ['张三', '李四', '王五'];我们想给这个数组的每个元素都加上相同的前缀,此时我们会这样做:const fullNames = names.map(function(name){ return...

ES6引入了箭头函数。箭头函数主要有三个有点:

  1. 更简洁的语法
  2. 隐式return
  3. 当在一个函数中使用箭头函数的时候并不会重新绑定this的值。

简单使用

例如有下面一个数组:

const names = ['张三', '李四', '王五'];

我们想给这个数组的每个元素都加上相同的前缀,此时我们会这样做:

const fullNames = names.map(function(name){
  return `前端-${name}`;
});
console.log(fullNames); //['前端-张三', '前端-李四', '前端-王五']

如果想要用箭头函数重构

const fullNames2 = names.map((name) => {
  return `前端-${name}`;
});
console.log(fullNames2);//['前端-张三', '前端-李四', '前端-王五']

单个参数去掉括号

还是上面的例子,因为我们只传了一个name参数,那么我们可以直接去掉括号:

const fullNames3 = names.map(name => {
  return `前端-${name}`;
});
console.log(fullNames3); //['前端-张三', '前端-李四', '前端-王五']

隐式return

在普通函数中,我们使用return 来返回值,但是有很多函数通常是单行函数,上面的例子就是,只有一个 return 前端-${name};,在普通函数我们必须使用return,但是在箭头函数则不需要:

const fullNames4 = names.map(name =>  return `前端-${name}`;);
console.log(fullNames4);  //['前端-张三', '前端-李四', '前端-王五']

无参数箭头函数

上面的几个例子,我们都进行了传参,但是在日常的开发中,我们并不需要传参。

const fullNames5 = names.map(() => `前端`);
console.log(fullNames5); ['前端', '前端', '前端']

我们还会看到另一种写法:

names.map(_ => `前端``);

这种其实也是定义了一个变量,这个变量名叫做:_,我们称之为一次性变量

箭头函数始终是匿名函数

什么是匿名函数,什么是命名函数?

命名函数:

function sayMyName(name) {
  console.log(`搞前端的 ${name}`);
}

image-20220124211205981

使用命名函数的好处是,你可以通过堆栈,快速找到出错的具体位置。

但是使用箭头函数,你永远无法给箭头函数一个名字。但是,你可以将箭头函数赋值给一个变量。

const sayMyName = (name) => {console.log(`搞前端的 ${name}`);}

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。