用于指示函数参数的标准约定在JavaScript中未使用

And*_*imm 32 javascript naming-conventions unused-variables

是否有任何标准方法将函数参数标记为在JavaScript中未使用,类似于在Ruby中使用下划线启动方法参数?

Jos*_*ier 30

使用解构赋值,可以做到:

function f(...[, , third]) {
  console.log(third);
}

f(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说似乎更简单。 (3认同)

T.J*_*der 25

我们有一个例子可供使用,这在jQuery $.each中很常见,你在编写代码时不需要索引,只需要迭代回调中的值($.each向后相对Array#forEach):

$.each(objectOrArrayLikeThing, function(_, value) { }
    // Use value here
});
Run Code Online (Sandbox Code Playgroud)

使用_是我看到的最接近标准方法,是的,但是我也见过很多其他的 - 给它一个反映其目的的名称(index),调用它unused等等.

  • @HanmingZeng-确实不是。:-(你必须要做`(_0,_1,value)`或(在我的情况下)`(unused0,unused1,value)之类的东西。但是我也见过`(_,__,value)`。 ..yikes。:-)曾经有个草人提议,允许曾经有空白的参数名称,但是从来没有到过。 (4认同)
  • 但是你不能做函数 (_, _, value) (2认同)

Fre*_*son 20

使用支持解构的浏览器可以:

function ({}, {}, value) {
  // console.log(value)
}
Run Code Online (Sandbox Code Playgroud)

这有点整洁,因为它避免了多个参数具有相同名称的问题,也不会产生分配方法的库_(lodash,下划线等)的问题.

  • 不幸的是,如果未使用的参数是"undefined"或"null",则会抛出此异常. (5认同)
  • @oluckyman很好的解决方法!"不想命名一个未使用的arg?只是哑铃吧!" (5认同)
  • @OlegsJeremejevs`function({} = {},{} = {},value){...}`有帮助,但它变得凌乱...... (4认同)

Mar*_*tur 11

我会推荐这种语法:

function(_index, value) {...}
Run Code Online (Sandbox Code Playgroud)

不要隐藏 lodash 变量并且仍然有参数的描述,以防万一它会被使用。

VS Code 也正确突出显示这些名称,并且在自动修复代码异味后不会删除这些未使用的参数