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'
}