带括号或方括号的箭头函数之间的区别[重复]

Posted

技术标签:

【中文标题】带括号或方括号的箭头函数之间的区别[重复]【英文标题】:difference between arrow functions with parentheses or brackets [duplicate] 【发布时间】:2018-09-28 10:30:37 【问题描述】:

这两者在javascript中有什么区别?在脚本中是什么意思?

const Test1 = () => 
    console.log('test1')



const Test2 = () => (
    console.log('test2')
)

【问题讨论】:

【参考方案1】:

“基本”形式带有花括号,就像常规函数一样:

() => 
    ...

但是,箭头函数允许一种特殊情况的速记:

() => plain expression

如果你不使用花括号,你可以使用一个简单的表达式来代替,带有一个隐含的return即这两个是等价的:

() =>  return 42; 
() => 42

因此,您使用括号的版本算作单个表达式版本,并且将返回 console.log 的返回值(无论哪种方式都是 undefined),而在使用大括号的版本上则不会。

【讨论】:

【参考方案2】:

第二个例子用来简化函数的返回,但是在这种情况下你只能使用一个表达式,所以你不能编写大量的代码。尝试运行此示例以更好地理解:

const Test1 = () => 
   'test1'


console.log(Test1())


const Test2 = () => (  test = 'test4')

console.log(Test2())

此声明方法也用于简化返回对象:

const Test3 = () => ( a: 1, b: 2 );
console.log(Test3());

【讨论】:

以上是关于带括号或方括号的箭头函数之间的区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章

向胖箭头函数添加花括号会破坏它[重复]

箭头函数

letconstvar模板字符串箭头函数

为啥将箭头函数体包装在括号中

将对象文字包装在箭头函数中的括号是啥意思? [复制]

箭头函数隐式返回用括号自动包装