不定参函数
1)不定参函数
类型一.定义时的参数数量 大于 调用时的参数数量(!应避免使用)
//定义
function sum(_num1,_num2){//code}
//调用
sum(10)
类型二.定义时的参数数量 小于 调用时的参数数量
//定义
function sum(_num1){//code}
//调用
sum(10,20)
类型一.定义时的参数数量 大于 调用时的参数数量 (!应避免使用)
说明:
这种写法是应该被规避掉的不建议写法,具有隐患
如果一定有必要书写,则必须在函数中对参数进行初始化操作。
例子:
function sum(_num1, _num2){
// 参数初始化
_num1 = _num1==undefined ? 0 : _num1;
_num2 = _num2==undefined ? 0 : _num2;
//
console.log(_num1+_num2);
}
sum(10);
类型二.定义时的参数数量 小于 调用时的参数数量
说明:
这种写法是JavaScript中函数的正常应用之一
⭐利用了JavaScript在函数中提供了一个内置对象arguments
用来包括函数调用时的所有真实参数
arguments不是真数组
例子:
function sum(_num1){
// console.log(arguments);
var total = 0;
for(let i=0; i<arguments.length; i++){
total += arguments[i];
}
console.log(total);
}
sum(10, 20, 30, 40, 50, 60, 70);
arguments使用注意
- 在函数中 arguments 是用于存放函数 的真实传入当然参数
- !!是一个伪数组形式 , 可以使用length 读长度
- !!但是不可以直接使用 Array的方法
- 可以使用 … 扩展运算符 转换
- 亦或者
[].slice.call(arguments)
或Array.prototype.slice.call(arguments)