JSLint 意外 'arguments'

JSLint Unexpected 'arguments'

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

这是我使用张贴的参数的一种方式 。我也将它用于 console.log 周边通过测试。

我不知道警告是否可以忽略,也不知道 Crockford 不喜欢 arguments 对象的确切原因,所以这不是一个很好的答案。

这是我所知道的:ES6 提供了 rest parameter,它为我们提供了一种更简洁的方法来获得与参数对象几乎相同的功能(有一些差异)。此外,JSLint 不会给你任何警告(除非你不假设 ES6)。

例如,如果您想编写一个带有参数对象的求和函数,您的代码可能如下所示:

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;
    });
}