【问题标题】: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')
)

【问题讨论】:

    标签: javascript


    【解决方案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());
      

      【讨论】:

        猜你喜欢
        • 2011-11-27
        • 2020-03-01
        • 2016-12-08
        • 1970-01-01
        • 1970-01-01
        • 2020-06-21
        • 2010-12-19
        • 1970-01-01
        相关资源
        最近更新 更多