函数里的参数默认值
在ES5中,函数的参数还可以定义默认值。下面是一个例子。
function sum (x=1,y=2,z=3){ return x + y + z; } console.log(sum(4,2)); //输出结果是9
由于我们没有传入参数z,它的默认值是为3。因此,4+2+3==9.
在ES2015之前,上面的函数只能写成这样。
function sum(x,y,z){ if (x===undefined) x = 1; if (y===undefined) y = 2; if (z===undefined) z = 3; return x + y + z;; };
也可以写成这样
function sum () { var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0 ]: 1; var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[0 ]: 2; var z = arguments.length > 2 && arguments[2] !== undefined ? arguments[0 ]: 3; return x + y + z; }
tips:JavaScript函数中有一个内置对象,叫做arguments对象。它是一个数组,包含函数被调用的时的参数。即使不知道参数的名称,我们也可以动态获取并使用这些参数。