javaScript中值传递和引用传递

案例1

var str1 = "江西赣州于都县";
var number1 = 526.97;
var b = true;
var roles = ["建宁公主", "双儿", "曾柔", "沐剑屏", "阿珂", "方怡", "苏荃"];
var superStar = {name : "黄晓明", age : 43, wife : "Angelababy"};

console.log("*1*", str1, number1, b, roles, superStar);

//值传递和引用传递
function fun1(parm1, parm2, parm3, parm4, parm5){
	console.log("*2*", parm1, parm2, parm3, parm4, parm5);
	parm1 = "我家乡在江西于都县"; //基本类型的数据是传值
	parm2 = 89.74; //基本类型的数据是传值
	parm3 = false; //基本类型的数据是传值
	parm4[0] = "韦小宝"; //引用类型的数据是传引用
	parm5.age = 44; //引用类型的数据是传引用
	//引用传递会影响原来的变量
	console.log("*3*", parm1, parm2, parm3, parm4, parm5);
	console.log("*4*", str1, number1, b, roles, superStar);
}

fun1(str1, number1, b, roles, superStar);
//引用传递会影响原来的变量,roles和superStar会受到影响
console.log("*5*", str1, number1, b, roles, superStar);

运行结果如下:

案例2

var str2 = "赣南脐橙";
var number2 = 246.58;
var b2 = true;
var roles2 = ["张无忌", "杨过", "段誉", "乔峰"];
var superStar2 = {name : "周杰伦", age : 39, wife : "昆凌"};

console.log("*6*", str2, number2, b2, roles2, superStar2);

//值传递和引用传递
function fun2(parm1, parm2, parm3, parm4, parm5){
	console.log("*7*", arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
	//这里使用了arguments对象,效果和上一个案例的效果一样
	arguments[0] = "柿子饼"; //基本类型的数据是传值
	arguments[1] = 187.63; //基本类型的数据是传值
	arguments[2] = false; //基本类型的数据是传值
	arguments[3][0] = "令狐冲"; //引用类型的数据是传引用
	arguments[4].age = 37; //引用类型的数据是传引用
	//引用传递会影响原来的变量
	console.log("*8*", parm1, parm2, parm3, parm4, parm5);
	console.log("*9*", str2, number2, b2, roles2, superStar2);
}

fun2(str2, number2, b2, roles2, superStar2);
//引用传递会影响原来的变量,roles2和superStar2会受到影响
console.log("*10*", str2, number2, b2, roles2, superStar2);

运行结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值