当前位置: 首页 > 面试题库 >

无花括号的箭头功能

端木兴国
2023-03-14
问题内容

我是ES6和React的新手,并且我不断看到箭头功能。为什么某些箭头函数在粗体箭头之后使用花括号,而另一些使用括号?例如:

const foo = (params) => (
    <span>
        <p>Content</p>
    </span>
);

const handleBar = (e) => {
    e.preventDefault();
    dispatch('logout');
};

谢谢你的帮助!


问题答案:

括号返回单个值,花括号执行多行代码。

您的示例看起来很混乱,因为它使用的是JSX,看起来像多个“行”,但实际上只是被编译为一个“元素”。

这里有一些其他例子,它们都做同样的事情:

const a = (who) => "hello " + who + "!";
const b = (who) => (
    "hello " + 
    who + 
    "!"
);
const c = (who) => {
  return "hello " + who + "!";
};

您还会经常在对象文字周围看到括号,因为这是避免解析器将其视为代码块的一种方式:

const x = () => {} // Does nothing
const y = () => ({}) // returns an object


 类似资料:
  • 问题内容: 可以有人,请解释以下内容: 我正在关注Dan Abramov的讲座并进行练习。 该代码工作正常,但是,当以下特定功能 用 大括号编写时,测试将失败。 相同的代码在 没有 大括号的 情况下也 可以正常工作。 这是JsBin。请从第31行开始。 问题答案: case ‘toggleTodo’ : return ( state.map( (one) => oneTodo( one, acti

  • 问题内容: 我一直在研究一些Graph QL / React / Relay示例,但遇到了一些奇怪的语法。 在Graph QL Objects中定义字段时,使用以下语法: 根据我的收集,这只是定义一个匿名函数并将其分配给xType.fields。该匿名函数返回包含字段定义的对象。 我假设使用Graph QL模式机制,但必须将其定义为返回对象而不是简单返回对象的函数。但是令我困惑的部分是花括号周围的

  • 我一直在研究一些Graph QL/React/Relay示例,遇到了一些奇怪的语法。 在图形QL对象中定义字段时,使用以下语法: 据我所知,这只是定义一个匿名函数,并将其分配给xType.fields.该匿名函数返回包含字段定义的对象。 然而,我假设图形QL模式机制是工作的,这必须被定义为返回对象的函数,而不仅仅是返回对象。但是让我困惑的部分是花括号周围的括号。 这是为了区分对象定义和函数定义吗?

  • 问题内容: 我不明白为什么 在arrow函数中 我们不需要 将arrow函数 的文字包装在大括号中,而不是在此示例中将文字包装在单个大括号中。为什么?我已经上网冲浪了,但是找不到答案。 还有为什么我们将论点放在双括号中,而不是仅仅放在右括号中? 问题答案: 使用是参数和是等价的回报隐含并且仅提供一个对象的开始和功能体的开口括号之间的歧义,当你有一个多返回值一般会被使用。您可以简单地避免使用并将其与

  • 问题内容: 我知道上面的箭头功能等效于: 但是我对以下内容有些困惑 为什么函数参数用大括号括起来,而函数主体仅用括号括起来? 问题答案: ES6的一些语法糖元素在这里起作用: 参数解构 :该函数实际上使用一个对象,但是在执行该函数之前,将其唯一的对象参数解构为三个变量。基本上,如果传递给函数的参数称为obj,则为onClick变量分配obj.onClick的值,并与其他命名的分解变量相同。 简洁的

  • 问题内容: 有没有一种快速的方法可以使Eclipse将花括号放在代码块的下一行上(本身)? 问题答案: 对于预先编写的代码块,请先按照Don的建议进行设置,然后选择该代码段,然后右键单击SourceCode->Format,然后按照首选项中的设置进行格式化。