JavaScript基础教程(五十五)函数之函数参数:玩转JS函数参数,从硬核基础到高级黑科技

形参与实参的本质差异

函数定义时的参数称为形参(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函数设计能力与代码质量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值