Javascript的下划线"_"

288 阅读2分钟

问题描述

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

chart.x = function(_) {
  if (!arguments.length) return lines.x;
  lines.x(_);
  lines2.x(_);
  return chart;
};

有人可以对此进行更新...谢谢.

推荐答案

下划线符号_是JavaScript中的有效标识符,在您的示例中,它被用作函数参数.

单个下划线是一些JavaScript程序员使用的惯例,向其他程序员指示他们应该"忽略此绑定/参数".由于JavaScript不做参数计数检查参数可能已完全省略.

此符号经常(再次通过惯例)与脂肪箭头函数结合使用,以使其甚至可以阅读,例如:

:

const fun = _ => console.log('Hello, World!')
fun()

在这种情况下,该函数不需要参数即可运行,因此开发人员已使用下划线作为约定来指示这一点.可以这样写同样的东西:

const fun = () => console.log('Hello, World!')
fun()

区别在于第二版是一个没有参数的函数,但是第一个版本的参数称为_被忽略.但是它们是不同的,第二版更安全,如果详细的话(1个额外的字符).

另外,考虑一个案例

arr.forEach(function (_, i) {..})

其中_指示不使用第一个参数.

使用这样的下划线可能会在使用流行的lodash或下划线库时变得非常混乱.

其他推荐答案

_在脂肪箭头功能中称为 Thraway变量.这意味着实际上我们正在创建一个变量,但只是忽略了它. 现在,更多的开发人员正在使用它作为句法糖或简短的手写代码,因为它很容易,而且编写代码的一个字符较少.

而不是使用_,您可以使用其他变量,例如temp,x等

示例:

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



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




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

但是我个人更喜欢使用()在不需要参数的情况下键入throwawar变量.

请参阅以下代码,然后您将更好地理解它.

_作为参数,

  f = _=> {
    return _ + 2 ;
}

f(3)将返回5

要更好地理解,请检查Wes Bos