实参和形参
(1)关于函数的形参传递方式:函数的形参也可以看成一个变量
(简单数据类型)值传递时:当我们把一个值类型变量作为参数传递给形参时,其实是把变量在栈中的值复制了一份给形参那么在方法内部对形参做任何修改,都不会影响到外部变量。
(复杂数据类型)引用传递时:当我们把一个引用类型变量作为参数传递给形参时,其实是把变量在栈中保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。
(2)关于实参和形参数量不匹配时的匹配规则
实参数>形参数:
[code] function sum(a,b,c) {console.log (a+b+c); //16}sum(11,2,3,4); //实参按顺序传递给形参,形参传满为止,多出来的实参不传递
实参数<形参数
[code] function sum(a,b,c) {console.log (a+b+c); //NaN(c没有传实参,值为undefined,与数字相加值为NaN}sum(11,2); //实参按顺序传递给形参,实参不够时,没有传值的形参为undefined