js中的值传递和引用传递

来源:互联网 发布:丝丽隆鼻 知乎 编辑:程序博客网 时间:2024/06/02 04:25

遇到js中的值传递问题,搜博客感觉写的太多了,有点冗余,整理一下,挺清爽的。。。
前提:你明白值传递和引用传递意思,并理解堆栈。

 var a1=100;          var b1=a1;           a1=1;         console.log(a1,b1); //1,100  值传递     var a2=[1,2,3];     var b2=a2;     var a2= [2,3,4];     console.log(a2,b2); //[2,3,4][1,2,3] 值传递     var a=[1,2,3];     var b=a;     b.push(4);      console.log(a,b); //[1,2,3,4] [1,2,3,4]     //虽然操作的是b,但是a也改了 看起来像引用传递    //js中只有值传递    //1. 纯粹的值传递    //2. 地址的值传递。(call by sharing)    //原理:基本数据类型(字符串,数值,布尔)操作在栈中,直接赋值。    //但是引用数据类型(数组,字符串)在堆中操作传递的是**地址**,    //如果不是赋值操作,对象就是共享的  //怎么理解      if(对象或者数组&&不是赋值操作){      /        理解为引用传递          }else{       理解为值传递      }
0 0
原创粉丝点击