ES6函数声明难度

时间:2019-01-14 14:51:48

标签: javascript ecmascript-6

我正在上一门关于React Native的课程,并且意识到讲师以两种不同的方式声明函数,这似乎没有什么不同的原因。请说明何时应使用每个函数声明:

example = () => ();

vs

example = () => {};

谢谢

1 个答案:

答案 0 :(得分:2)

箭头功能在function bodies中可能有所不同(感谢Robbie)。 concise 函数主体只能包含一个被评估并隐式返回的表达式。传统的 block 函数主体需要return关键字,否则它将返回void

example1 = () => 1 + 1;

example2 = () => {
    const result = 1 + 1;
    return result;
};

example3 = () => { 
    const result = 1 + 1;
};

example1()的主体简洁,将隐式返回表达式2的结果。
example2()有一个块体,并且明确地返回2
example3()具有块主体,并且没有显式返回,因此它返回void

请注意,如果要返回对象文字,则需要在简洁函数主体周围使用大括号()

example = () => ({some: 'object'});