案例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);
运行结果如下: