函数有了参数才变得强大。
一、参数规则
形参比实参多,多的形参赋值undefined
实参比形参多,有多少形参就对应赋多少实参,其余的放到 arguments
arguments[]
是一个类数组 – 实参列表
// 形式参数 -- 形参 -- 用来占位的
function fun(a, b) {
let c = a + b; // 和数学一样,把两个数相加的规则抽象出来。
document.write(c);
}
// 实际参数 -- 实参
fun(1, 2);
二、参数的长度
function fun(a) {
document.write(fun.length); // 1 --- 形参的长度
document.write(argumens.length); // 3 --- 实参的长度
}
fun(1, 2, 3);
小案例 – 输入数组多少就加多少
function sum() {
let result = 0;
for (let i = 0; i < arguments.length; i++) {
result += arguments[i];
}
document.write(result);
}
sum(1, 2, 3, 4, 5, 6, 7, 8, 9); // 45
小案例 – 判断形参多了还是实参多了
function test(a, b, c, d) {
if (test.length > arguments.length) {
console.log('形参多了');
} else if (test.length < arguments.length) {
console.log('实参多了');
} else {
console.log('相等');
}
}
test(1, 2, 3, 4); // 相等
test(1, 2); // 形参多了
映射规则:你变我也变,我变你也变
只有形参和实参数量相等的情况下,他们才有映射规则;如果数量不相等,没有映射关系!!!