在javascript函数参数中的下划线

Azh*_*har 20 javascript

我正在浏览用javascript编写的图表库之一的代码,其中我看到将下划线(_)作为函数参数传递.那是什么意思?

例如

chart.x = function(_) {
    if (!arguments.length) return lines.x;
    lines.x(_);
    lines2.x(_);
    return chart;
  };
Run Code Online (Sandbox Code Playgroud)

有人可以请更新此...谢谢.

sag*_*r43 34

在这种情况下,_它只是一个函数参数 - 单个下划线是一些程序员用来表示"忽略此绑定/参数"的约定.

由于JavaScript不进行参数计数检查,因此可以完全省略参数.这样的"扔掉的"标识符在其他语言中更常见,但是考虑到的情况等arr.forEach(function (_, i) {..}),其中_表示不使用的第一个参数.

  • 如果它被完全省略,那么他就没有什么可以传递给`lines.x()`和`lines2.x(_)`. (2认同)
  • @MarkJackson '_' 仍然保留一个值。您可以通过声明一个带有记录该参数的参数“_”的函数来测试这一点,您将看到它记录传入的所有内容 (2认同)

Ana*_*aja 8

_ 在胖箭头函数中被称为一次性变量。这意味着实际上我们正在创建一个变量,但只是忽略了它。现在越来越多的开发人员在编写代码时使用它作为语法糖或速记,因为编写代码很容易并且少一个字符。

除了使用 _,您还可以使用其他变量,如 temp、x 等

举些例子:

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



_ => console.log('Hello World')




x => console.log('Hello World')
Run Code Online (Sandbox Code Playgroud)

但我个人更喜欢在不需要参数的情况下使用 () 类型而不是一次性变量。

看下面的代码,你会更好地理解它。

_ 作为论据,

  f = _=> {
    return _ + 2 ;
}
Run Code Online (Sandbox Code Playgroud)

f(3) 将返回 5

为了更好地理解,请查看 we bos