js的基本類型與引用類型
- 基本類型:
string
Number
Boolean
undefined(表示變量聲明但并未賦值)
null(是一個空對象指針俱诸,表示準備用來保存對象,還沒有真正保存對象的值,)
symbol(表示獨一無二的值) - 引用類型:
Object
Array
function
Date
區(qū)別:
- 基本類型的變量是存放在棧區(qū)的编兄,引用類型的值是同時保存在棧內存(存放地址)和堆內存中的對象
- 基礎數據類型都是按值訪問,引用類型的值都是按引用訪問的也搓。在復制變量值時,基本類型會在變量對象上創(chuàng)建一個新值巴刻,再復制給新變量愚铡。此后,兩個變量的任何操作都不會影響到對方胡陪。而引用類型在創(chuàng)建一個對象類型時沥寥,計算機會在內存中開辟一個空間來存放值,我們要找到這個空間柠座,需要知道這個空間的地址邑雅,變量存放的就是這個地址,復制變量時其實就是將地址復制了一份給新變量愚隧,兩個變量的值都指向存儲在堆中的一個對象蒂阱,也就是說,其實他們引用了同一個對象狂塘,改變其中一個變量就會影響到另一個變量录煤。(引出深淺拷貝)
- 基本類型的值是不可變的,引用類型的值是可變的荞胡;
- 引用類型值可添加屬性和方法妈踊,而基本類型值則不可以。
- 基本類型的比較是值的比較泪漂,引用類型的比較是引用的比較
參考網址:
https://blog.csdn.net/weixin_39786171/article/details/80699736
http://www.cnblogs.com/gromimiss/p/6066268.html