箭头函数带不带花括号的区别

您所在的位置:网站首页 一个函数的反函数是唯一的吗 箭头函数带不带花括号的区别

箭头函数带不带花括号的区别

2023-07-06 01:20| 来源: 网络整理| 查看: 265

今天在写代码的时候遇到了这样一个问题:

this.ids = selection.map((item) => {item.userId})

本意是,遍历数组中的数据,将已经选中的数据存入到ids变量中。但是尝试了多次,ids中都没有被存入数据,一直是空的。

通过和源代码进行比对,发现了问题,以下是源代码:

this.ids = selection.map((item) => item.userId)

发现两者唯一的区别就是,箭头函数的函数体有没有加花括号。

一直以为只有一句代码的时候,箭头函数是可以省略函数体外层的花括号,并不知道他们还有什么区别。通过查阅资料得到:

第一行代码中的箭头函数使用了花括号 {},并且没有显式地返回任何值。它尝试将 selection 数组中每个元素的 userId 属性提取出来,并且将结果存储到 this.ids 中。由于花括号存在,在箭头函数中需要使用 return 语句来明确指定返回值。

修改后的第二行代码中,花括号 {} 被省略了,这意味着箭头函数只有一条语句。这种情况下,箭头函数会自动将这条语句的结果作为返回值。因此,使用了简化的箭头函数语法,直接提取 item.userId 属性,并将结果存储到 this.ids 中。

总结一下:

当函数有花括号时,需要写上返回值,也就是return一个东西出来,不然什么也得不到;当函数体只有一行语句时,可以不加花括号,该函数会自动的将这条语句的结果作为返回值。

以上就是箭头函数加不加花括号的区别~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3