带括号或方括号的箭头函数之间的区别[重复]
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());
【讨论】:
以上是关于带括号或方括号的箭头函数之间的区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章