关于JavaScript函数参数的理解
关于JavaScript函数参数的理解
1.理解参数
- 函数参数与其他语言的有所不同,JavaScript函数不会在乎你传进来多少个参数。
- 函数参数内部是用一个arguments的数组来表示,参数只提供便利而不是必须的。
- 通过访问arguments对象的长度可以知道有多少个参数传递给了函数。
//封装一个计算和的函数、
function add() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
console.log(add(1, 2, 3)); //6
可以知道函数内部的参数其实就是一个数组。
2.参数与arguments的关系
function add(num1,num2){
if(arguments.length==1){
console.log(num1+10);
}else if(arguments.length==2){
console.log(arguments[0]+num2)
}
}
num1==arguments[0]
num2==arguments[1]
- 命名参数可以和arguments对象一起使用,两者的值保持同步,注意一点就是两个值并非在同一个内存空间
- 传入一个值,则arguments[1]不会反映到命名参数中,arguments对象的长度取决于传入的参数
3.没有重载
- JavaScript中的函数没有重载的定义
- 如果声明了两个同名的函数,取决于后定义的函数
- 可以检查函数中参数类型和数量做出不同的反应来模拟重载
function add(num){
return num+1;
}
function add(num){
return num+2;
}
console.log(add(1)); //3
ps:笔者最近开通了微信公众号,大家可以关注一下哦,谢谢大家的支持!