區別:let宣告的變數可以改變,值和型別都可以改變;而const宣告的常數不可以改變,這意味著,const一旦聲明,就必須立即初始化,不能以後再賦值。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
相關推薦:《javascript影片教學》
let與const的不同點:
① let宣告的變數可以改變,值和型別都可以改變;const宣告的常數不可以改變,這意味著,const一旦聲明,就必須立即初始化,不能以後再賦值。
const i ; // 报错,一旦声明,就必须立即初始化 const j = 5; j = 10; // 报错,常量不可以改变
② 數組和物件等複合類型的變量,變數名稱不指向數據,而是指向資料所在的位址。 const只保證變數名指向的位址不變,並不保證該位址的資料不變,所以將一個複合型別的變數宣告為常數必須非常小心。
const arr = []; // 报错,[1,2,3]与[]不是同一个地址 arr = [1,2,3]; const arr = []; // 不报错,变量名arr指向的地址不变,只是数据改变 arr[0] = 1; arr[1] = 2; arr[2] = 3; console.log(arr.length); // 输出:3
若想讓定義的物件或陣列的資料也不能改變,可以使用object.freeze(arr)進行凍結。凍結指的是無法為這個物件或陣列新增新的屬性,不能修改已有屬性的值,不能刪除已有屬性。
const arr = []; Object.freeze(arr); // 不报错,但数据改变无效 arr[0] = 1; arr[1] = 2; arr[2] = 3; console.log(arr.length); // 输出:0
let和const的相同點:
#① 只在宣告所在的區塊層級作用域內有效。
② 不提升,同時存在暫時性死區,只能在宣告的位置後面使用。
③ 不可重複宣告。
更多程式相關知識,請造訪:程式設計入門! !
以上是let和const的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!