JavaScript--函数-按值传递

Posted 笑嘻嘻的小银

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript--函数-按值传递相关的知识,希望对你有一定的参考价值。

按值传递(byValue): 两个变量间赋值或将变量作为参数传入函数时,其实都是将原变量中的值,赋值一份给对方(新变量)
对原始类型的值: 修改新变量,不会影响原变量
对引用类型的对象: 通过新变量修改对象,等效于直接修改原对象。

第一个例子:对原始类型的值

1     var a=10;
2     var b=a;//取出a中的值,复制一份给b
3     a++;
4     console.log(a);//11
5     console.log(b);//10

第二个例子:对引用类型的对象

1、函数

1     var card=10;
2     function buy(card){
3       card-=3;
4       console.log(card);
5     }
6     buy(card);//7
7     console.log(card);//10

2、数组

 1     var my=["包","包","包","包","包"];
 2          //  0    1    2    3    4
 3     var lp=my;
 4     lp[0]="";
 5     console.log(String(my));//4
 6     my[4]="";
 7     console.log(String(lp));//3
 8 
 9     var arr=[1,2,3,4,5];
10            //0 1 2 3 4
11     function fun(arr){
12       arr[5]=6;
13       arr=[1,2,3];
14       arr[6]=12;
15       console.log(String(arr));
16     }
17     fun(arr);//123,,,12
18     console.log(String(arr));//123456

 

以上是关于JavaScript--函数-按值传递的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript深入之参数按值传递

javascript中所有函数的参数都是按值传递的

JavaScript中的参数传递(求值策略),ECMAScript中所有函数的参数都是按值传递吗(系列八)

JavaScript 是按引用传递还是按值传递? [复制]

Javascript中函数相关知识点

为啥我要在 C 中按值传递函数参数?