问题描述
我正在浏览用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