JS参数传递

本文探讨了JavaScript中基本数据类型和引用数据类型在函数参数传递时的区别。对于基本数据类型,参数传递是值传递,原始值不会因函数内部操作而改变;而对于引用数据类型如对象和数组,参数传递实际上是引用传递,函数内部对对象的修改会影响到原始对象。通过示例代码,清晰展示了这一行为,并提醒读者注意在实际编程中对此的理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

值传递

//基本数据类型的传递
function changeNum(num){
        num += 1;
        return num;
}
function changeStr(str){
        str += 'world';
        return str;
}

/*作为参数传递的变量不因为参数值的改变而改变*/

let num = 2;
let numRet = changeNum(num);
console.log(num, numRet);//2 3

let str = 'hello';
let strRet = changeStr(str);
console.log( str, strRet);//hello  helloworld

地址传递

//引用数据类型的传递
function changeObj(obj){
         obj.name = 'jack';
         return obj;
}


/*传递的对象可以通过参数改变*/
let obj = { name:'sunny', age:23};
let objRet = changeObj(obj);
console.log( obj.name, objRet.name);// jack  jack

//数组的传递
funtion arrChange(arr){
        arr[0] = 23;
        return arr;
}
let arr = [12,34,56];
let arrRet = arrChange(arr);
console.log(arr, arrRet);//23  23

-------------------------新增内容----------------------------
感兴趣的可以去阅读一下
汤姆大叔的博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值