javascript - javascript 函数中的 () 和 {} 有什么区别?

标签 javascript reactjs

<分区>

这些函数在 React 教程中似乎可以互换使用,但无法弄清区别……或者何时使用哪个?

const SomeVal = () => {
    ...
}

const SomeVal = () => (
    ...
)

最佳答案

这些是根本不同的。以前的箭头函数语法,() => {} , 允许你在箭头函数的主体中有多个语句,即:

() => {
  console.log('Hello!');
  return 'World!';
}
// When called, this logs Hello! and returns World!

但后者,() => () , 是一个箭头函数,隐式返回一个用括号括起来的表达式(称为分组运算符)。它没有明确允许多个语句:

() => (
  'World' // only one expression that is implicitly returned
  // Would work fine without parentheses (unless you want to return an object!)
)
// When called, this function returns 'World'

当然,您也可以创建一个不可读的箭头函数,使用逗号运算符执行多个操作:

() => (console.log('Hello!'), 'World!')

react

我假设您在 React 无状态组件中看到了这一点:

const Comp = () => (
  <div>Hello World!</div>
);

此函数(组件只是函数)返回 <div>隐式元素。但是,使用 {} ,你可以做一些中间计算而不是马上返回:

const Comp = () => {
  const msg = 'Hello World!';
  return ( // Need to explicitly return here
    <div>{msg}</div>
  );
}

关于javascript - javascript 函数中的 () 和 {} 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51773502/

相关文章:

javascript - 使用 .toDataUrl() 将 Chart.js Canvas 图表转换为图像会导致空白图像

javascript - 如何在 ionic 4 中使用 alertcontroller 返回 promise ?

javascript - 调试代码我认为这将是这个函数 onSelect

Javascript require 与 require .default

javascript - mobx 可观察日期字段不会自动重新渲染

javascript - 如何在 Javascript React Native 中映射 firebase 结果

javascript - 如何使用 PHP 更新 JSON 文件中的值

javascript - 如何在 jQuery 中匹配 URL 和 href?

javascript - 如何使用react-testing-library测试material ui MenuList组件上的按键事件

java.io.IOException : Can't write react-native run-android failed