值类型与引用类型的区别

值类型:Number,Sting之类的

引用类型:函数、对象、数组

区别:

1. 值类型赋值之后是两个相互独立的内存块,互相不影响。即把b赋值给a之后,a和b就存在与不同的内存块中。修改其中任何一个值都不会影响另外一个。

var a=100;
var b=a;
a=200;
console.log(b); //100

2. 引用类型赋值以后是相当于一个指针,指向同一个内存块。引用类型利用对象的无限扩展性能,当属性增加的时候,出现内存过大的情况,如果再赋值给另外一个内存块,势必会造成内存浪费,所以为了让内存中公用空间,让他们指向同一个对象。这是合理的。

var a={age:20};
var b=a;
b.age=21;
console.log(a.age);//21

 

posted @ 2017-08-28 15:35  哼小调C  阅读(133)  评论(0)    收藏  举报