Javascript变长参数和默认参数
/* javascript 变长参数 * 实参少于形参: 剩下的参数如果没有默认值,将解析为undefined * 实参多于形参: 剩下的实参可以通过 "实参对象"-arguments 来获取 * - 实参对象是对象, 但是有数组的特性, 类数组 * - arguments 保存的是所有参数,如 arguments[0]表示的是第一个实参,length属性得到实参个数 * - 按照这个对象,那么函数可以根本不用参数, 不过有参数可以减少变量的声明并使代码更清晰 */ function sum(){ var sum = 0; for(var i=0;i<arguments.length;++i) sum += arguments[i]; return sum; } console.log(sum(2,1,3,4)); //10 //默认参数 /*--Method 1--*/ function defaultParam1(first, second){ var first = first ? first : 1; // 设置默认值 var second = second ? second : 2; return first+second; } /*--Method 2--*/ function defaultParam2(){ var first = arguments[0] ? arguments[0] : 1; // 设置默认值 var second = arguments[1] ? arguments[1] : 2; return first+second; } /*--Method 3--*/ function defaultParam3(first, second){ first = first || 1; second = second || 2; return first+second; }
默认参数还有直接在函数形参后面直接加默认值的方法, 与C++类似. 详细信息参考: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Default_parameters