Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么将箭头函数体括在括号中_Javascript_Reactjs_Ecmascript 6_Return_Arrow Functions - Fatal编程技术网

Javascript 为什么将箭头函数体括在括号中

Javascript 为什么将箭头函数体括在括号中,javascript,reactjs,ecmascript-6,return,arrow-functions,Javascript,Reactjs,Ecmascript 6,Return,Arrow Functions,在一个代码示例中,我遇到了一个函数,函数体用括号括起来: export default () => ( <ul> {notes.map(note => //some code )} </ul> ) 试图弄清楚这在现实世界的用例中实际意味着什么。汽车类比欢迎(;无括号,对象声明括号{}被视为箭头函数体,将导致逻辑错误 此params=>{foo:'bar'}被视为 params => {

在一个代码示例中,我遇到了一个函数,函数体用括号括起来:

export default () => (
  <ul>
      {notes.map(note =>
          //some code
      )}
  </ul>
)

试图弄清楚这在现实世界的用例中实际意味着什么。汽车类比欢迎(;

无括号,对象声明括号
{}
被视为箭头函数体,将导致逻辑错误

params=>{foo:'bar'}
被视为

params => { 
             foo: 'bar'
          }
const func1=params=>{foo:'bar'};
log(func1());
const func2=params=>({foo:'bar'});

console.log(func2());
MDN声明用于返回对象文字。但我想您想知道为什么有些人不管对象文字是什么,都将返回指令放在括号中

一点理论 在JavaScript中,分号是可选的。如果您不知道自动插入分号的行为,这可能会导致一些错误

当您有一个带换行符的
返回时,它将返回一个
未定义的

const add=(x,y)=>{
返回
x+y
}

console.log(add(1,1))//未定义
顺便说一句,这个特殊的代码在没有父类的情况下也能工作好,在您介绍的用例中得到了它,知道它为什么属于上面的代码吗?(可能是个错误)@Skarlinski通常情况下,它应该和它的JSX一样工作良好,但是如果你使用任何linting,这可能会引起警告。另外,使用括号的另一个原因可能是JSX可以有多行,所以要用一条语句来包装,这可能是必要的。我分享了一本书中的代码示例,他始终使用这种格式,我我想看看是否有一个真正的问题benefit@Rajesh这很有帮助。但是脱离主题:jsx不是总是传输到一个语句中吗?@rajesh而且,这是我应该采用的jsx的最佳实践吗?
params => { 
             foo: 'bar'
          }