繁体   English   中英

JSLint意外的“参数”

[英]JSLint Unexpected 'arguments'

是否可以声明JSLint注释以忽略警告? 另外,为什么会警告该错误? 我记得在某个地方读到的不是真正的数组,因此出于某种原因,编码人员不得不获取参数长度,并通过for循环将值传递给数组。

这是我使用此处发布的参数的一种方式。 我也将它用于console.log进行周边测试。

我不知道是否可以忽略该警告,或者不知道为什么Crockford不喜欢arguments对象,所以这不是一个很好的答案。

这就是我所知道的:ES6提供了rest参数 ,这为我们提供了一种更干净的方法来获得与arguments对象几乎相同的功能(有一些区别)。 另外,JSLint不会为此警告任何提示(除非您不假设使用ES6)。

例如,如果您想编写一个sum函数,并使用arguments对象,您的代码可能如下所示:

function sum() {
    const args = Array.prototype.slice.call(arguments, 0);
    return args.reduce(function (a, b) {
        return a + b;
    });
}

使用rest参数,您可以这样编写sum函数:

function sum(...args) {
    return args.reduce(function (a, b) {
        return a + b;
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM