我們都知道javascript有五種基本數(shù)據(jù)類型,分別是Null,String,Boolean,Number,Undefined。
基本類型為字面量為null,string,boolean,number,undefined的變量。
復(fù)制
復(fù)制針對的是基本類型。
基本數(shù)據(jù)類型存在棧中有固定大小,復(fù)制會產(chǎn)生一個副本,只見沒有關(guān)系。
var a = 12;
var b = a;
console.log(a); //12
console.log(b); //12
b = 10;
console.log(a); //12
console.log(b); //10
從例子中發(fā)現(xiàn)復(fù)制會產(chǎn)生一個原有數(shù)據(jù)的副本,在新創(chuàng)建的內(nèi)存空間中,互不影響。
引用
引用針對的是對象,就是通過new創(chuàng)建出來的對象,存儲在堆中。
var a = {name:'Joho'}
var b = a;
console.log(a.name); //Joho
console.log(b.name); //Joho
b.name = 'Tom';
console.log(a.name); //Tom
console.log(b.name); //Tom
從例子發(fā)現(xiàn)當(dāng)var b = a時,b和a指向了同一塊內(nèi)存,對b進行修改的a也會進行改變,當(dāng)然若對a進行修改b肯定也會相應(yīng)的改變。