Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于指示函数参数在JavaScript中未使用的标准约定_Javascript_Naming Conventions_Unused Variables - Fatal编程技术网

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

用于指示函数参数在JavaScript中未使用的标准约定,javascript,naming-conventions,unused-variables,Javascript,Naming Conventions,Unused Variables,有没有标准的方法可以在JavaScript中将函数参数标记为未使用的,类似于在Ruby中用下划线启动方法参数?我们有一个例子,这在jQuery的$中非常常见。每个代码都不需要索引,只需要值,在迭代回调中($。每个相对于数组#forEach向后): 使用\uuu是我见过的最接近标准的方法,是的,但我也见过很多其他方法-给它起一个反映其用途的名称(索引),称它为未使用的,等等 如果需要忽略多个参数,则不能重复相同的标识符(它应该是每个人的默认标识符,并且是模块和类构造中的默认标识符),因此必须执行\

有没有标准的方法可以在JavaScript中将函数参数标记为未使用的,类似于在Ruby中用下划线启动方法参数?

我们有一个例子,这在jQuery的
$中非常常见。每个
代码都不需要索引,只需要值,在迭代回调中(
$。每个
相对于
数组#forEach
向后):

使用
\uuu
是我见过的最接近标准的方法,是的,但我也见过很多其他方法-给它起一个反映其用途的名称(
索引
),称它为
未使用的
,等等


如果需要忽略多个参数,则不能重复相同的标识符(它应该是每个人的默认标识符,并且是模块和
构造中的默认标识符),因此必须执行
\u 0
\u 1
\u
\u
之类的操作,等等。

使用支持解构的浏览器,您可以执行以下操作:

function ({}, {}, value) {
  // console.log(value)
}
这有点简洁,因为它避免了多个参数具有相同名称的问题,也不会对将方法分配给
(lodash、下划线等)的库产生问题

这种方法的一个问题是,类型为
undefined
null
的未使用参数将抛出

对于未定义的
,一种解决方案是使用默认参数:

function ({}={}, {}={}, value) {
  // console.log(value)
}

遗憾的是,对于
null

没有这样简单的解决方案,我建议使用以下语法:

function(_index, value) {...}
若要使用lodash变量,请不要对其进行阴影处理,并保留参数说明


VS Code也会正确地突出显示这些名称,并且这些未使用的参数在autofix代码发出气味后不会被删除

如何使用函数对象

function third(){const[,thirdArg]=参数;
返回thirdArg;
}
控制台日志(第三个(1,2,3))使用,可以执行以下操作:

function ({}, {}, value) {
  // console.log(value)
}
函数f(…[,第三个]){ 控制台日志(第三); }
f(1,2,3)
从我到目前为止所看到的情况来看,它仍然在使用中。如果您希望删除未使用的变量,不幸的是,如果未使用的参数未定义
null
@OlegsJeremejevs
函数({}={},{}={},value){…}
在这里有帮助,但它会变得混乱…@oluckyman很好的解决方法!“不想命名一个未使用的arg?就哑铃吧!”哇,我一直认为分解一个原语值,即
(function({}={}{}){})(0)
var{a}=0
会抛出though@HanmingZeng-确实不是-(你必须做
(\u0,\u1,value)
或者(在我的例子中)
(unused0,unused1,value)
。我也看到了
(\u0,\uu1,value)
,但是……是的。:-)曾经有一个斯特劳曼建议允许空白参数名,但它从未出现过。在Chromium中,编写一个函数声明,比如
function(u,u,a){…}
(当然,在函数内部变量
\uu
只包含第二个传递的参数)似乎效果不错但是没有错误,函数创建(并且工作)很好。@zrajm-仅在松散模式下。在严格模式下,不允许重复的参数名称。(最好总是使用严格模式,除非在极少数情况下不能使用。这也是模块和
类的内容的默认设置。)我更喜欢@Joseph Marinier的答案,这对我来说似乎更简单。