JavaScript变量的访问方式(值&引用)详解

JS中变量的访问分两种方式

1,按值访问----------------可以直接操作保存在变量中的【实际值】

2,按引用访问,分两种情况:

        1).当复制保存着对象的某个变量时,操作的是对象的引用(这种情况一般是给一个变量赋值一个对象时),因为这个对象只是把他的引用保存在了这个变量上

        2)当访问(查)对象的属性或操作(增删改)对象属性时,操作的是【实际的对象】

【重点】理解JS的变量与变量之间的赋值和函数参数传值方式

​ 首先我们要知道,JS中的变量与函数参数的传值都是按值传递的。 (理解这点很重要)

1.当一个变量a=6时,js会把这个基本类型的实际值保存到a分配的位置上,在将a赋值给一个新变量b时,a会把这个实际值复制到b分配的位置上

2.当一个变量a=[1,2,3]时,js会把这个引用类型的值的引用保存到a分配的位置上,这时a的实际值就等于数组[1,2,3]的引用,在将a赋值给一个新变量b时,a会把他的实际值(现在是个引用)复制到b分配的位置上

如下所示:

<script>
    var arr = [1,2,3];
    var a = arr;
    var b = a;
    a[1]=6;
    console.log(a);    //[1,6,3]
    console.log(b);    //[1,6,3]
</script>

结果图:

总结:所以变量与变更之间的值传递(赋值)都是按值传递的。函数参数也是如此

​ 当给一个新变量赋值一个基本类型值时,变量保存的【实际值】就是这个基本类型值

​ 当给一个新变量赋值一个对象时,变量保存的【实际值】是这个对象的引用,而不是这个实际的对象

​ 当给一个新变量赋值别一个变量时,如b = a ;是把a【实际值】赋值给了b

猜你喜欢

转载自blog.csdn.net/u012803663/article/details/82285691