在 ES6 中,函数的参数有了很多新特性,其中包括默认参数和剩余参数。这两个特性能够让我们更加方便地编写函数,并且提高了代码的可读性和可维护性。本文将详细介绍 ES6 中的函数默认参数和剩余参数,并提供一些示例代码,帮助读者更好地理解和应用这些特性。
默认参数
在 ES6 之前,我们经常需要在函数内部判断参数是否传入,如果没有传入则使用默认值。例如:
// javascriptcn.com 代码示例 function multiply(a, b) { if (b === undefined) { b = 1; } return a * b; } multiply(5); // 5 multiply(5, 2); // 10
在 ES6 中,我们可以使用默认参数来更简洁地实现上述功能。例如:
function multiply(a, b = 1) { return a * b; } multiply(5); // 5 multiply(5, 2); // 10
在这个例子中,我们给函数的参数 b 设置了默认值为 1。如果调用函数时没有传入 b,那么 b 就会取默认值 1。如果传入了 b,那么 b 就会取传入的值。
需要注意的是,设置默认值的参数必须放在函数参数的最后面。例如下面的代码是错误的:
function multiply(a = 1, b) { return a * b; }
剩余参数
在 ES6 中,我们还可以使用剩余参数来接收函数调用时传入的所有参数。例如:
// javascriptcn.com 代码示例 function sum(...numbers) { let result = 0; for (let number of numbers) { result += number; } return result; } sum(1, 2, 3); // 6 sum(1, 2, 3, 4, 5); // 15
在这个例子中,我们使用了剩余参数语法 ...numbers,它会将函数调用时传入的所有参数打包成一个数组。我们可以在函数内部通过遍历这个数组来处理传入的参数。
需要注意的是,剩余参数必须放在函数参数的最后面。例如下面的代码是错误的:
function sum(...numbers, a) { let result = 0; for (let number of numbers) { result += number; } return result + a; }
示例代码
下面是一个使用默认参数和剩余参数的示例代码,它实现了一个计算器的功能:
// javascriptcn.com 代码示例 function calculator(operation, ...numbers) { let result = 0; switch (operation) { case 'add': for (let number of numbers) { result += number; } break; case 'subtract': result = numbers[0]; for (let i = 1; i < numbers.length; i++) { result -= numbers[i]; } break; case 'multiply': result = 1; for (let number of numbers) { result *= number; } break; case 'divide': result = numbers[0]; for (let i = 1; i < numbers.length; i++) { result /= numbers[i]; } break; default: throw new Error(`Unknown operation: ${operation}`); } return result; } console.log(calculator('add', 1, 2, 3)); // 6 console.log(calculator('subtract', 10, 2, 3)); // 5 console.log(calculator('multiply', 2, 3, 4)); // 24 console.log(calculator('divide', 100, 2, 5)); // 10
在这个示例代码中,我们定义了一个 calculator 函数,它接收一个操作符和任意个数的参数。根据操作符的不同,我们会执行不同的计算,并返回计算结果。使用默认参数和剩余参数可以让我们更加方便地编写这个函数,并且让代码更加易读和易维护。
总结
ES6 中的函数默认参数和剩余参数是非常实用的特性,它们能够让我们更加方便地编写函数,并且提高了代码的可读性和可维护性。需要注意的是,设置默认值的参数必须放在函数参数的最后面,剩余参数也必须放在函数参数的最后面。在实际开发中,我们可以充分利用这些特性来提高代码的效率和可维护性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/657c196dd2f5e1655d6dbedf