es6函数的剩余参数怎么写calc('+', 1,2,3,4,5)
时间: 2023-10-14 12:04:25 浏览: 37
ES6中引入了剩余参数的概念,可以使用剩余参数来实现这个功能,代码如下:
```javascript
function calc(operator, ...args) {
let result = args[0];
for (let i = 1; i < args.length; i++) {
if (operator === '+') {
result += args[i];
} else if (operator === '-') {
result -= args[i];
} else if (operator === '*') {
result *= args[i];
} else if (operator === '/') {
result /= args[i];
}
}
return result;
}
console.log(calc('+', 1, 2, 3, 4, 5)); // 输出15
```
这个函数接收一个操作符和任意数量的参数,然后根据操作符对这些参数进行计算,并返回结果。在函数定义时,我们使用了一个带有三个点号的参数`...args`,它表示接收任意数量的参数,并将它们以数组的形式传递给函数。在函数体内,我们可以使用`for...of`循环遍历这个数组中的每个参数,并根据操作符对它们进行计算。
相关问题
ES6函数默认参数值
在ES6中,我们可以为函数的参数设置默认值。如果我们调用函数时不传递参数,那么就会使用默认值。
下面是一个示例:
```javascript
function greet(name = 'World') {
console.log(`Hello, ${name}!`);
}
greet(); // 输出 "Hello, World!"
greet('Alice'); // 输出 "Hello, Alice!"
```
在这个例子中,函数`greet`有一个参数`name`,默认值为`'World'`。当我们调用`greet`函数时,如果不传入参数,它会使用默认值`'World'`。否则,它将使用传入的参数值。
需要注意的是,如果我们传递一个`undefined`值给函数,它也会使用默认值,而不是使用`undefined`。例如:
```javascript
greet(undefined); // 输出 "Hello, World!"
```
除了基本数据类型,我们还可以为参数设置默认值为表达式或函数调用的返回值。例如:
```javascript
function greet(name = getDefaultName()) {
console.log(`Hello, ${name}!`);
}
function getDefaultName() {
return 'World';
}
greet(); // 输出 "Hello, World!"
```
在这个例子中,我们把`getDefaultName()`函数的返回值作为`name`参数的默认值。当我们调用`greet`函数时,它会调用`getDefaultName()`函数来获取默认值。
利用ES5和ES6求函数参数的和
在5中,可以使用``对象来获取函数的参数列表,并通过遍历实现求和。示例代码如下:
```javascript
function sum() {
var total = 0;
for (var i = 0; i < arguments.length; i++) {
total += arguments[i];
}
return total;
}
console.log(sum(1, 2, 3)); // 输出6
```
在ES6中,可以使用剩余参数(rest parameters)来获取函数的参数列表,并通过数组的`reduce`方法求和。示例代码如下:
```javascript
function sum(...args) {
return args.reduce((acc, curr) => acc + curr, 0);
}
console.log(sum(1, 2, 3)); // 输出6
```
这两种方法都可以用来求函数参数的和,选择使用哪种取决于你的项目需求和对语言版本的要求。