一、函数的形参、实参是什么?
fn(10,20,30,40) ,实际传入函数的参数就是实参,实参的个数可以比形参的个数多,按照顺序赋值,不会影响程序的执行逻辑但是会影响性能;实参的个数可以比形参的个数少,按照顺序赋值,可能会影响程序的执行逻辑,解决方案就是设计函数时提前预设。
function fn(a,b){ var c=a+b console.log( c )},a,b就是形参
二、关键字arguments、length
1.arguments
函数内部有一个关键字 arguments,代表实际传入函数的参数列表(类数组)
function fn(a,b){
var c=a+b
console.log(c)
//函数内部有一个关键字 arguments,代表实际传入函数的参数列表(类数组)
console.log(arguments)
}
//实际传入函数的参数(实参) 的个数可以比形参的个数多,按照顺序赋值
//不会影响程序的执行逻辑但是会影响性能
fn(10,20,30,40)
2.length
函数的length属性代表的是形参的个数(面试题)
function fn(a,b,c){
// var a,b;
//a=10
if(a==undefined){a=0}
if(b==undefined){b={}}//默认值
console.log(a,b)
// b.x=100
console.log(arguments.length)//实参个数
}
//实际传入函数的参数(实参) 的个数可以比形参的个数少,按照顺序赋值
//可能会影响程序的执行逻辑==>解决方案就是设计函数时提前预设
fn(10)//
fn()
fn(100,{name:"karen"})
//函数的length属性代表的是形参的个数(笔试题)
console.log(fn.length)
fn(10)
补充: 函数的name属性,指的是函数名
function fn () {
}
console.log(fn.name)
var a=fn
console.log(a.name)
var a=function(){}
console.log(a.name)
var a=function fn(){}
console.log(a.name)
答案:
总结
分清函数的实参和形参,用arguments查看函数的实参,arguments.length查看实参个数,fn.length查看形参个数