js函数参数传递基本数据类型和引用数据类型的不同

js函数参数传递基本数据类型和引用数据类型的不同

之前提到函数的参数分为形参、实参两种,形参是用来函数定义是设接收调用传入,实参是用来函数调用时传入小括号里面的真实数据。

函数在传递参数时,可以传入两种数据类型,一种是基本数据类型,另一种是引用数据类型,其不同表现形式如下。

1、参数传入基本数据类型是按值传递

		var a = 10;
        var b = 20;
        function test(a,b){
            // a,b 形参  将全局下的a,b 复制一份 不会改变全局下的a和b
            a = a++;
            b = b++;
            console.log(a,b); //11  21
        }
        test(a,b);
        console.log(a,b);//10 20 

这个例子在调用时传入了a和b,这两个参数的传入可以看做分别为数值10和20传入了函数,在函数体内a和b自加了一,所以函数体内输出11和21,但并未改变a和b变量的值,所以在外面输出10和20。

2、参数传入引用数据类型按地址传递

	    var obj = {
            a:1,
            b:2
        }
        // 按地址传递
        function test4(parm){
            // parm  obj的地址  通过obj的地址找到对应的属性 操作的是属性的本身
            parm.a++;
            parm.b++;
            console.log(parm.a,parm.b);// 2 3 
        }
        test4(obj);
        console.log(obj.a,obj.b); // 2 3 

这个例子在传入参数时传入的obj是引用数据类型,函数体中parm.a++为obj.a++。其中obj.a相当于是指针,指向obj.a这个地址,改变了obj对象的a的值,所以在函数体中和函数体外都是输出2和3.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值