let與const都是隻在聲明所在的塊級作用域內有效。
let聲明的變量可以改變,值和類型都可以改變,沒有限制。
const
聲明的變量不得改變值,這意味着,const一旦聲明變量,就必須立即初始化,不能留到以後賦值。
const a ;//報錯,一旦聲明變量,應該立即賦值!!
const b = 2;
b = 3//報錯,因爲定義常量之後不能成重新賦值!!
對於複合類型的變量,如數組和對象,變量名不指向數據,而是指向數據所在的地址。const
命令只是保證變量名指向的地址不變,並不保證該地址的數據不變,所以將一個對象聲明爲常量必須非常小心。
const names = [];
names = [1,2,3] //出錯,因爲變量names指向的地址不能發生改變,應始終指向[]所在的地址!!![1,2,3]與[]不是同一個地址
//不會報錯,因爲names指向的地址不變,改變的只是內部數據
const names = [];
names[0] = 1
names[1] = 2
names[2] = 3
摘自他人博客筆記,僅作爲個人筆記記錄,如有侵權請聯繫刪稿