arguments
- arguments是一个类数组对象(伪数组)。
- 和数组相似,可以通过索引来读取元素,也可以通过for循环变量,但是他不是一个数组对象,不能用来调用数组方法。
- arguments用来存储函数的实参。
- 无论用户是否定义形参,是实参会存储到arguments对象中,可以通过该对象直接访问实参。
function fn() {
console.log(arguments)
console.log(arguments.length)
console.log(arguments[2])
for (let i = 0; i < arguments.length; i++){
console.log(arguments[i])
}
for(let v of arguments){
console.log(v)
}
arguments.forEach(ele => console.log(ele))
}
fn(1,10,39)
- arguments作用。
function sum() {
let result = 0;
for(let num of arguments){
result += num;
}
return result;
}
可变参数
- 可变参数可以接受任意数量实参,并将他们统一存储到一个数组中返回
- 可变参数的作用和arguments基本一致,但也具有不同点:
- 可变参数的名字可以自己指定
- 可变参数就是一个数组,可以直接使用数组的方法
- 可变参数可以配合其他参数一起使用(需要将可变参数,写到最后)
function sum2(...num) {
return num.reduce((a+b) => a+b,0)
}
function fn3(a,b,..args) {
}
}
fn3(1,2,'hello',99,true)