前端測試題: 關於定義常量的關鍵字const,定義一個Object對象,再對屬性的值進行修改,下列說法正確的?

考核內容:const定義對象

題發散度: ★★

試題難度: ★

解題思路:

const聲明一個只讀的常量。一旦聲明,常量的值就不能改變。

const實際上保證的,並不是變量的值不得改動,而是變量指向的那個內存地址所保存的數據不得改動。對於簡單類型的數據(數值、字符串、布爾值),值就保存在變量指向的那個內存地址,因此等同於常量。但對於複合類型的數據(主要是對象和數組),變量指向的內存地址,保存的只是一個指向實際數據的指針,const只能保證這個指針是固定的(即總是指向另一個固定的地址),至於它指向的數據結構是不是可變的,就完全不能控制了。

以上代碼中常量a儲存的是一個地址,這個地址指向一個對象。不可變的只是這個地址,即不能把foo指向另一個地址,但對象本身是可變的,所以依然可以為其添加新屬性。

參考代碼:

答案

C、修改成功,name的值為John