const
是es6新增加的關鍵字,作用是宣告乙個唯讀變數。這個變數指向的內容位址是不可以改動的。
const a = 1
a = 4 // typeerror: assignment to constant variable.
和let
一樣,它也有暫時性死區和塊級作用域的特性。
// 暫時性死區
console.log(b) // referenceerror
const b = 2
// 塊級作用域
if (true)
console.log(c) // uncaught referenceerror: max is not defined
const
宣告的值是基礎資料型別(number,string,boolean),那麼這個變數的值就不可以改變。如果值是復合型別(主要是物件和陣列),那麼裡面的屬性或者每一項則可以改變。因為const只能保證這個指標是固定的,但是指向的資料結構則不可以控制。
const d = {}
d.name = '123'
console.log(d.name) // '123'
d = {} // typeerror: "d" is read-only
const f =
f.push('123') // ['123']
console.log(f) // ['123']
f = // uncaught typeerror: assignment to constant variable.
如果想要將乙個物件給鎖死,應該使用object.freeze
const e = object.freeze({})
// 常規模式時,下面一行不起作用
// 嚴格模式時,該行會報錯 uncaught typeerror: cannot add property name, object is not extensible
e.name = '123'
如果想要徹底鎖死,應該將物件下面的所有屬性鎖死
function freezeobj(obj)
})}
如何宣告乙個類
什麼是類 類是使用者自定義的引用型別 類的 示例 class pair class pair class pair 可以有結尾分號 類的 解析 你可以使用關鍵字class來宣告類這一使用者自定義的引用型別。類的語法和結構的非常類似。它提供函式 字段 建構函式 操作符和訪問控制。類成員的預設訪問許可權...
乙個字面常量
c 有兩種常數 文字,符號。常量字面值常量文字數字插入 他們是常數,因為你不能改變他們的價值觀。1int x 5 5是乙個字面常量 常量可以字尾,確定其型別。整數常量可以有乙個u或u字尾,意味著他們是無符號的。整數常量也可以有乙個l或者l字尾,這意味著他們是長整數。然而,這些字尾通常是可選的,因為編...
前端如何定義乙個常量
為什麼會這樣?實際上,const定義的變數儲存的是指向實際資料的指標,對於基本資料型別string boolean number undefined null symbol而言,其值儲存在棧記憶體中的簡單資料段,按值訪問,就是等同於常量。但是相對於引用資料型別而言,const只能保證指向儲存在堆記憶...