标签:
一、你可以传递任意数量的参数
当调用一个 function 时,你想传递多少参数都可以,这与该函数声明了多少个正式的参数无关。 缺失参数的值是 undefined,多出来的参数则直接被忽略掉。
二、所有传递的参数都储存在 arguments 中
所有传递的参数都储存在一个很特别、很像 Array(继续看就能知道为什么了)的变量里——arguments。
通过下面的function 我们来看下这个变量怎么用的:
function g() { console.log(‘Length: ‘+arguments.length); console.log(‘Elements: ‘+fromArray(arguments));// fromArray 函数,它把 arguments 转换成 array 这样就能存入数据了 }
调用 g():
> g() Length: 0 Elements: > g(‘a‘) Length: 1 Elements: a > g(‘a‘, ‘b‘) Length: 2 Elements: a,b
无论明确声明了多少个参数,arguments 是永远在那里的,它总是包含所有实际的参数。
如果调用者没有提供参数,那么 undefined
就会传递给 function
。 你不传参数与传入 undefined
获得的结果是一样的
而传入
false
、0
以及空字符串都被解析为缺失参数
Tips:
我们可以用 ||
来指定参数默认值:
function add(x, y) {
x = x || 0;
y = y || 0;
return x + y;
}
标签:
原文地址:http://www.cnblogs.com/mousehhq/p/4309399.html