天天看點

ES6-const注意

注意要點

const 如何做到變量在聲明初始化之後不允許改變的?其實 const 其實保證的不是變量的值不變,而是保證變量指向的記憶體位址所儲存的資料不允許改動。此時,你可能已經想到,簡單類型和複合類型儲存值的方式是不同的。是的,對于簡單類型(數值 number、字元串 string 、布爾值 boolean),值就儲存在變量指向的那個記憶體位址,是以 const 聲明的簡單類型變量等同于常量。而複雜類型(對象 object,數組 array,函數 function),變量指向的記憶體位址其實是儲存了一個指向實際資料的指針,是以 const 隻能保證指針是固定的,至于指針指向的資料結構變不變就無法控制了,是以使用 const 聲明複雜類型對象時要慎重。