1. arguments
- JavaScript函数调用不对参数做任何检查。
- 当调用函数的时候传入的实参比形参个数少时,剩下的形参都被设置为undefined。
给被省略的参数赋值
function getPropertyNames(o, /* optional */ a) {
a = a || []; // 等于 if(a == undefined) a = [];
for (var property in o) {
a.push(property);
}
return a;
}
console.log(getPropertyNames({ '1': 'a', '2': 'b' })); // ["1", "2"]
console.log(getPropertyNames({ '1': 'a', '2': 'b' }, ['3'])); // ["3", "1", "2"]