let和const的區別javascript
let和const只在聲明的塊極做用域內有效。java
const a;//會報錯,由於a只聲明沒有賦值; const b = 123; b=456;//會報錯,由於const聲明的變量不能被修改
若是聲明的是複合類型的變量:數組或者對象,那麼const指向變量所在的地址,const會保證const聲明的變量的地址不變,可是不會保證地址內的數據不改變
const person = []; person = ['黑人','白人'];//會報錯,由於[]和['黑人','白人']是不同的地址,地址發生了改變。 這種狀況不會報錯,由於students指向的地址沒有變化,只是裏面的數據發生了改變 const students = []; students[0] = '阿明'; students[1] = '阿利';
若是想讓定義的數組和對象中的數據或者屬性不被修改,能夠用Object.freeza(obj)進行凍結,這樣給對象添加屬性就不起做用了數組