在js中,變量按存儲方式來說,有兩種類型,一是值類型,二是引用類型。
先說值類型,在js中,值類型有Number、String、 Boolean、undefined、null。那么在內存中,值類型存儲的就是這些基本數據變量的值,如果我們要對這些變量進行復制,那么我們需要一塊新的內存空間來存放復制的值。
那引用類型又是什么呢,引用類型在js中有對象、函數、數組,作為引用類型,他們都可以無限的擴展屬性,那么當一個引用類型擴展的屬性非常多的時候,我們進行復制是不是就要拿出一塊相應的空間去存放,那占得內存就會非常大了,所以引用類型存放的只是一個引用也就是一個指針,指向在堆中真正的數據。
在這里舉一個可能不是很恰當的例子,我們把房子作為內存空間,聲明的變量就是房子里的東西,值類型是什么呢?我看了你這個房間,我也很想要,于是乎我就新建了一個房子,然后把其中的東西原封不動的復制一份搬到我的房子里,這就是值類型復制的特性。
那么引用類型是什么呢,就是我很喜歡你這個房子,那你就把鑰匙配給我一把,我也可以使用這個房子,但是我對這個房子的使用情況也會影響到你的使用,我往里面填了一個電視,那么你用的時候電視是在里面的了。
關鍵詞:



