18910140161

JavaScript-为什么给出参数...参数中的参数是这样的?-堆栈溢出

顺晟科技

2022-10-19 12:42:46

66

我的观点是:

function sum(...arguments) {
    if (arguments.length === 1) {
        const [firstArg] = arguments;
        if (firstArg instanceof Array) {
            return sum(...firstArg)
        }
    }
return arguments.reduce((a, b) => a + b);
}

这是什么...在争论前做什么。也请帮助我知道为什么给出const[firstArg],以及这是如何工作的。请用简单的话给我解释一下。我的母语不是英语。非常感谢。


顺晟科技:

:

rest参数语法允许函数接受数目不定的参数作为数组。

此:

function sum(...arguments) {
    if (arguments.length === 1) {
        const [firstArg] = arguments;
        if (firstArg instanceof Array) {
            return sum(...firstArg)
        }
    }
return arguments.reduce((a, b) => a + b);
}

析构分配:

[它]使得可以将数组中的值或对象中的属性解压缩到不同的变量中。

re:

instanceof operator测试构造函数的prototype属性是否出现在对象的prototype链中的任何位置。返回值是布尔值。

解压缩此代码:

您的函数可以通过参数,然后返回总和来简化。这样,您甚至可以传入一组单个值,或者n多个数组作为函数的单个参数,或者两者的混合。

(...arguments)是rest参数语法,它允许函数接受数量不定的参数作为数组,从而提供了一种在JavaScript中表示不同函数的方法。 有关更多信息,您可以阅读here

function sum(...arguments) {
    if (arguments.length === 1) {
        const [firstArg] = arguments;
        if (firstArg instanceof Array) {
            return sum(...firstArg)
        }
    }
return arguments.reduce((a, b) => a + b);
}

是一种名为析构赋值的东西 析构赋值语法是一个JavaScript表达式,它可以将数组中的值或对象中的属性解压缩到不同的变量中。

您可以阅读更多信息,此处

,在最后一个示例中,instanceof操作符测试构造函数的prototype属性是否出现在对象的prototype链中的任何位置。返回值为布尔值

这是因为...是一个javascript工具,它允许在一个函数中放置多个参数,它被称为rest参数函数。

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航