箭头函数体与返回值。 ()=> {return value;} vs.()=> value;

时间:2017-09-20 16:23:30

标签: javascript ecmascript-6 arrow-functions

在箭头函数中返回值与添加正文并键入return之间是否有任何区别?

据我所知,他们是一样的。

这是一个会话:

let a = () => 1;
a()
1
let b = () => { return 1; }
b()
1
a
() => 1
b
() => { return 1; }

这些情况有什么不同吗?

2 个答案:

答案 0 :(得分:3)

一个区别是使用隐式返回语法返回对象文字需要将对象文字包装在括号中。

var foo = () => { bar: "foobar" }; //This function returns undefined
var foo = () => { return { bar: "foobar" }; }; //This function returns an object
var foo = () => ({ bar: "foobar" }); //This function returns object

据我所知,这是唯一的区别。

答案 1 :(得分:1)

简洁的body箭头函数隐式返回值,而对于多行箭头函数,您必须显式返回值。

在你的情况下,两者都有相同的净结果