【问题标题】:What does this underscore arrow syntax mean in JavaScript? [duplicate]这个下划线箭头语法在 JavaScript 中是什么意思? [复制]
【发布时间】:2021-09-20 15:23:21
【问题描述】:

这里的上下文是我正在查看一个 React.js 应用程序,我看到了:

const _onClick = _ => setClick(!clicked);

如果我理解正确,这是以下内容的简写:

const _onClick = () => { setClick(!clicked); } 

或者,在 ES6 之前:

var _onClick = function() {
    setClick(!clicked);
}

但我从未见过没有括号的箭头函数。下划线是函数名吗?

【问题讨论】:

  • _ 是变量名,如abmyVariable。你可以写const _onClick = a => setClick(!clicked);。在这种情况下a(或_)未被使用,有些人更喜欢写= a => 而不是= () =>(不带参数的函数)。

标签: javascript reactjs ecmascript-6 arrow-functions


【解决方案1】:

下划线是未使用的函数参数的命名约定,但在此处使用它是为了编写不带括号的函数。具有单个参数的箭头函数不需要括号。

【讨论】:

  • Javascript 不在乎,但 Typescript 会抱怨:参数已声明但从未使用过!您在没有传递任何内容的情况下调用该函数,但它需要一个参数!等等。应用程序无法编译。
  • @JeremyTille 这是正确的,但可能与问题无关?
  • 只是一个旁注。 = _ => 在不应该被 Javascript 接受的时候被 Javascript 接受(Javascript 太松散了)。因此,IMO 正确的语法是 = () =>(不需要参数)
猜你喜欢
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
  • 2015-05-15
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 2016-12-09
相关资源
最近更新 更多