之前一直以为一个函数的参数是根据带入的数据来使用的,用不用的到就是自己的事了,后来才发现不是的。
js函数的参数与大多数其他语言中函数的参数有所不同,js函数不介意传递来多少个参数,也不在乎传进来的参数是什么数据类型,也就是说,即便你定义的函数只接收两个参数,在调用这个函数时也未必一定要传递2个参数。可以传递一个、三个甚至不传参数,解析器永远不会有什么怨言。之所以会这样,因为js中参数在内部是用一个数组来表示的。函数接受到的始终是这个数组,而不关心数组中包含那些参数。
实际上,在函数体内可以通过arguments对象来访问这个参数数组,来获取每一个传递过来的参数
第一个是arguments[0],,第二个是arguments[1].......
所以可以用length获得参数的个数,写一个简单的例子记录一下
window.onload = function(){
console.log(test(1,2,3));
}
function test(){
let t1 = arguments[0]||0;
let t2 = arguments[1]||0;
let t3 = arguments[2]||0;
let nums = 0;
if(t3 > 0){
nums = t3+t2+t1;
}
return nums;
}
返回 6
原来函数的参数命名不是必须的。