zoukankan      html  css  js  c++  java
  • 论JS函数传参时:值传递与引用传递的区别

    JS中数据类型分为两种:基本数据类型(undefined,null,Number,object,String,Boolean)和复杂数据类型(对象)

          而两种数据类型的参数传递方式也不同:分别采用值传递 和 引用传递

                     1.  值传递:不区分地址和值,直接通过地址就可以找到内容

                                    如:   var a = 10;

                                           var b = a;

                                              b = 20;
                                       console.log(a);   // 10
                                        console.log(b);  // 20

                              将变量a的值赋给了b,那么当b的值发生了改变时,a变量的值不会随着b发生改变,这就叫值传递

                   2.   引用传递的数据:区分地址和值,需要通过所在的地址找到对应的内容

                                  如:  var arr1 = [1,2,3];
                                           var arr2 = arr1;

                                          arr2[1]="hhhh";

                                          console.log(arr2);   // [1,"hhhh",3] 

                            首先,定义了一个数组arr1,将arr1的地址赋值给arr2时,仅仅是将arr1的地址赋值给了arr2,也就是说当arr1的数据发生改变时,数组arr2地址指向的数组arr1中 的数据发生了改变,arr2中保存的地址的内容发生了改变,这种叫引用传递。

     总结:值传递的数据,地址和值是一个内容,所以在拷贝之后,改变新的,不会影响老的。 引用传递是说,地址和值是两个部分,在默认的情况下,只复制了地址,并没有复制值,此时,两个地址指向了同一个值,修改了新的值,并且影响了之前的值。这个叫引用数据的浅拷贝。

  • 相关阅读:
    PHP获取指定的时间戳
    Elasticsearch
    git有用基本指令
    php中的json_decode
    有用的sql积累
    git submodule使用原理
    mysql重复插入时insert更改为update更新操作
    jpm
    awk 语句
    tomcat 发布简单的html网站
  • 原文地址:https://www.cnblogs.com/daydayup-98282/p/12344082.html
Copyright © 2011-2022 走看看