一、JavaScript 數據類型
基本數據類型:字符串(String)、數字(Number)、布爾(Boolean)、空(Null)、未定義(Undefined)、Symbol
引用數據類型:對象(Object)、數組(Array)、函數(Function)
二、內存空間
要理解 JavaScript 在運行過程中數據是如何存儲的,就得先搞清楚其存儲空間的種類
在 JavaScript 的執行過程中, 主要有三種類型內存空間,分別是代碼內存空間、棧內存空間 和 堆內存空間,其中的代碼內存空間主要是存儲可執行代碼的,棧內存空間就是調用棧,是用來存儲執行上下文的,堆內存空間是用來儲存引用數據類型的
從上圖可以看到,對象類型是存放在堆空間的,在棧空間中只是保留了對象的引用地址,當 JavaScript 需要訪問該數據的時候,是通過棧中的引用地址來訪問的,所以,父組件傳遞給子組件的,實際上只是一個引用地址,當子組件修改這個對象時,是真的修改了在堆空間中保存的數值,當然父組件中的值也會發生變化,但是引用地址沒有進行修改,所以并沒有報錯。