形参与实参的本质差异
函数定义时的参数称为形参(Formal Parameters),调用时传入的值则是实参(Actual Arguments)。JavaScript不强制参数数量匹配,这种灵活性既是优势也是陷阱。
function demo(a, b) {
console.log(a, b); // 形参使用
console.log(arguments); // 实参集合
}
demo(1); // 输出: 1 undefined 和 [1]
默认参数的高级特性
ES6的默认参数不仅简化代码,还具有暂时性死区特性:
function calc(total, tip = total * 0.15) {
return total + tip;
}
console.log(calc(100)); // 115
Rest参数与arguments对象的对决
ES6引入的rest参数(...args)是现代替代arguments的方案:
function sum(...numbers) {
return numbers.reduce((acc, val) => acc + val, 0);
}
console.log(sum(1, 2, 3)); // 6
解构参数的优雅应用
参数解构让复杂配置变得清晰:
function setup({ id, name = '匿名', permissions = [] }) {
console.log(id, name, permissions);
}
setup({ id: 1 }); // 1 '匿名' []
参数传递的底层逻辑
JavaScript中基本类型按值传递,对象按共享传递:
function update(obj) {
obj.value = 100; // 影响外部对象
obj = { value: 0 }; // 断开引用
}
let item = { value: 1 };
update(item);
console.log(item.value); // 100
掌握这些参数特性,将极大提升你的JavaScript函数设计能力与代码质量。
350

被折叠的 条评论
为什么被折叠?



