- 函数内部有一个关键字 arguments,代表实际传入函数的参数列表(类数组)
- 实际传入函数的参数(实参)的个数可以比形参的个数多,按顺序赋值 不会影响程序的执行逻辑 但是会影响性能
比如:
function fn(a,b) {
var c = a+b
console.log(c)
console.log(arguments)
}
fn(10,20,30,40)
程序执行并不会报错,会依次取出和形参相同个数的值,所以打印出c的结果是30
3.实际传入函数的参数(实参) 的个数可以比形参的个数少,按照顺序赋值 可能会影响程序的执行逻辑==>解决方案就是设计函数时提前预设
比如:
function fn(a,b) {
// 解决方案
if(a==undefined) {
a=0
}
if(b==undefined) {
b={}
}
console.log(a,b)
}
fn(10)
当只传入一个值时,a就是传入的值,b就为空对象;当不传入值时,a就默认为0,b为空对象
4.函数的默认属性:
(1)函数的length属性代表 形参的个数
console.log(fn.length)
(2)函数的arguments属性代表 实参的个数
console.log(arguments.length) //只有当函数被调用,才能打印实参的个数
(3)函数的name属性 代表函数的名字,当没有设置name属性值时,会打印出空字符串 " "