JavaScript 扩展、默认和剩余参数是什么
ES6中添加了默认参数、扩展参数和剩余参数。
默认参数: 它用于为参数提供默认值,如果函数调用中未提供参数。
语法:
function fnName(param1 = defaultValue1, ..., paramN = defaultValueN) {
...
}
示例1: 在下面的示例中,第一个函数返回结果为7,而第二个函数调用将返回“未定义”,因为我们没有传递第二个参数。
Javascript
<script>
function add(a, b) {
return a + b
}
console.log(add(5, 2)); // 7
console.log(add(5)); // NaN
</script>
输出:
7
NaN
示例2: 在这个示例中,我们使用默认参数,如果没有提供参数,通常会给出默认值。我们将默认值设置为“b”,这样在第二次函数调用时,我们没有提供任何参数,就会使用该参数的默认值。
JavaScript
<script>
function add(a, b = 3) {
return a + b
}
console.log(add(5, 2))
console.log(add(5))
</script>
输出:
7
8
展开运算符: 它是ES6提供的另一个运算符,通常用于展开数组/列表的数据。
在下面的示例中,我们计算所有数字的最小值
示例1:
Javascript
<script>
console.log(Math.min(1, 2, 3, -1));
</script>
输出:
-1
示例2: 考虑我们有一个数组而不是一个列表,那么上面的min()函数将无法工作,它将返回“NaN”。
JavaScript
<script>
// Without spread operator
let arr = [1, 2, 3, -1];
console.log(Math.min(arr)); // NaN
</script>
输出:
NaN
示例 3: 在使用…arr时,它通常会在min()函数中传播arr的值。
JavaScript
<script>
// Spread operator
let arr = [1, 2, 3, -1];
console.log(Math.min(...arr)); // -1
</script>
输出:
-1
Rest运算符: 如果我们不确定函数将接受多少参数,它允许一个函数接受无限数量的参数。
语法:
function f(a, b, ...args) {
...
}
示例:
在下面的示例中,我们使用 rest 参数来接收无限参数。
Javascript
<script>
function myFun(a, b, ...manyMoreArgs) {
console.log("a", a)
console.log("b", b)
console.log("manyMoreArgs", manyMoreArgs)
}
myFun("one", "two", "three", "four", "five", "six");
</script>
输出:

极客教程