js中基础类型和引用类型传值问题

基本类型的数据是存放在栈内存中的,而引用类型的数据是存放在堆内存中的。

基本类型的复制就是在栈内存中开辟出了一个新的存储区域用来存储新的变量,这个变量有它自己的值,所以如果其中一个的值改变,则不会影响到另一个

var a = 1;
var b = a;
b = 4
console.log(a,b);

定义了一个对象其实是在栈内存中存储了一个指针,这个指针指向堆内存中该对象的存储地址。两个指针都指向同一个对象,所以若其中一个修改了,则另一个也会改变。

var aa ={
    a: 1
}
var bb =aa;
bb.a = 'haha'
console.log(aa,bb)

js中基础类型和引用类型传值问题_第1张图片

对象引用本身是传递引用地址,重新初始化变量会改变引用地址,不会更改原变量.

你可能感兴趣的:(前端,js,js)