用const聲明person對象,給age重新賦值是沒問題的
但是重新給person賦值是不可以的
這里需要了解‘基本數據類型’和‘引用數據類型’
基本數據類型:string, number, boolean, null, undefined。
- 基本數據類型的變量是保存在棧區中的,基本數據類型的值直接在棧內存中存儲,值與值之間是獨立存在的,修改一個變量不會影響其他的變量。
引用類型:object
- 引用數據類型的值是同時保存在棧內存和堆內存的對象,棧區保存了對象在堆區的地址,如下(網圖)
- const聲明的只是棧區內容不變,基本數據類型保存在棧區中不可改變;引用數據類型在棧區保存的地址不可改變。
- 所以const聲明的person給屬性重新賦值是可以的,但是給person重新賦值是不可以的,那樣會改變person在棧區的地址。
考點:數據類型,棧區,堆區