首頁  >  文章  >  web前端  >  let和const的差別是什麼

let和const的差別是什麼

青灯夜游
青灯夜游原創
2020-12-24 12:02:3818676瀏覽

區別:let宣告的變數可以改變,值和型別都可以改變;而const宣告的常數不可以改變,這意味著,const一旦聲明,就必須立即初始化,不能以後再賦值。

let和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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn