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分家了。所以他们互不影响
如果有什么不对的,欢迎大家指出纠正