JS中的基本类型和引用类型

我觉得吧,新手很容易犯这个错误,有时候我犯迷糊也会犯这个错误:

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

var c = 20;
var d = c;
d = 30;
console.log(d) //30
console.log(c) // 20

上面的就是变量的基本类型的赋值,下面来看一下引用类型:

var a = [1,2,3];
var b = a;
b.push(4);
console.log(a); // 1,2,3,4
console.log(b); // 1,2,3,4

很多人就要问为什么会这样,简单的来说:
a和b的内存地址是指向的同一个,所以,b改变的时候,实际上是把a也给改变了
var c = [1,2,3];
var d = c;

d = [1,2,3,4]
console.log(d); // 1,2,3,4
console.log(c); // 1,2,3

这个时候就很好理解了, d = c 的时候,这个时候他们指向的是同一个内存地址,但是当 d=[1,2,3,4] 的时候,等于d重新指向了一个新的内存地址,和c分家了。所以他们互不影响

如果有什么不对的,欢迎大家指出纠正

 

posted @ 2020-04-04 22:33  骑着小毛驴1688  阅读(205)  评论(0编辑  收藏  举报