javascript - javascript函数参数中下划线的含义是什么?

标签 javascript

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

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

有人可以更新一下吗...谢谢。

最佳答案

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

单下划线是一些 javascript 程序员用来向其他程序员表明他们应该“忽略此绑定(bind)/参数”的约定。由于 JavaScript 不进行参数计数检查,因此可以完全省略参数。

此符号经常与粗箭头函数结合使用(再次按照惯例),以使它们更加简洁和可读,如下所示:

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

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

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

不同之处在于,第二个版本是一个没有参数的函数,但第一个版本有一个名为 _ 的参数,该参数被忽略。但它们有所不同,第二个版本更安全,只是稍微更详细(1 个额外字符)。

另外,考虑这样的情况

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

其中_表示不使用第一个参数。

在使用流行的 lodash 或下划线库时,像这样使用下划线可能会变得非常困惑。

关于javascript - javascript函数参数中下划线的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27637013/

相关文章:

javascript - 我如何将 javascript $.post 结果插入文本字段

javascript - 在javascript中计算两个给定时间的时间差(以毫秒为单位),格式为 "DD/MM/YYYY HH:mm:ss:ms"

javascript - Google 图表工具提示位置问题

javascript - Mad Libs 下拉列表失败

javascript - 简单 meteor (1.7.0.5) 发布/订阅集合不起作用

Javascript:var myFunc = function() 与 var myFunc = function myFunc()

javascript - api 路由工作错误

javascript - 持续集成、dist 文件夹和 node_modules

javascript - jqgrid创建后如何应用列模板

javascript - 单击内部复选框时使用 jQuery 添加类以包含 li