let和const的區別
let與const都是只在宣告所在的塊級作用域內有效
let用來定義變數,無論是不是嚴格模式下,宣告未初始化的時候,都不會報錯,和var作用一樣,返回undefined
const用來定義常量,而且宣告時必須初始化,否則報錯
const不能修改定義的常量的值 但是可以修改常量的屬性值,例如:
const a = ;
a.b = 1;
console.log(a);
因為對於復合型別的變數,如陣列和物件,變數名不指向資料,而是指向資料所在的位址。
const命令只是保證變數名指向的位址不變,並不保證該位址的資料不變,所以可以修改const定義的陣列或者物件的數值;
也可以通過object.freeze(name)方法凍結這個常量;例如object.freeze(a);這時候a的屬性值就不能隨意更改了
有意思的是:
var let = 1; 在嚴格模式下報錯,非嚴格模式下,列印let是1
const let = 1;在不在嚴格模式下都會報錯
let和const的區別
let與const都是只在宣告所在的塊級作用域內有效。let宣告的變數可以改變,值和型別都可以改變,沒有限制。const宣告的變數不得改變值,這意味著,const一旦宣告變數,就必須立即初始化,不能留到以後賦值。const a 報錯,一旦宣告變數,應該立即賦值!const b 2 b 3 報錯,因為...
let和const的區別
1.let和var類似,用於宣告變數,只是let宣告的變數只在 塊中有效 在全域性定義就只能在全域性使用,在區域性宣告只能在區域性使用 例 let a 0 function ket ket 2 console.log a 0 2.不存在宣告提公升,不允許重複 包括普通變數和函式引數 let a 1 ...
let 和 const 用法和區別
var if ture console.log a vara let if true console.log b undefined建立乙個值的唯讀引用。但這並不意味著它所持有的值是不可變的,只是變數識別符號不能重新分配。例如,在引用內容是物件的情況下,這意味著可以改變物件的內容 例如,其引數 co...