核心提示:js中的值传递和引用传递:遇到js中的值传递问题,搜博客感觉写的太多了,有点冗余,整理一下,挺清爽的。 var a1=100;var b1=a1; a1=1; console.log(a1,b1); ...
js中的值传递和引用传递:遇到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{ 理解为值传递 }