理解es6中的const與「不變」

2022-01-15 06:20:55 字數 694 閱讀 6585

const實際上保證的,並不是變數的值不得改動,而是變數指向的那個記憶體位址不得改動。

'use strict'

const obj = {}

const arr =

obj.prop = 123 // 不改動指標

arr.push('hello') // 只改變資料結構

try // obj重指向新物件

} catch (err)

try catch (err)

除了將物件本身凍結,物件的屬性也應該凍結

方法可以凍結乙個物件。凍結物件是指那些不能新增新的屬性,不能修改已有屬性的值,不能刪除已有屬性,以及不能修改已有屬性的可列舉性、可配置性、可寫性的物件。

'use strict'

const foo = {}

foo.prop = 1

foo.config =

const freeze = obj =>

})}freeze(foo) // 完全凍結

try catch (err)

github:godbmw

ES6中的const命令

1.const宣告乙個唯讀常量,一旦宣告,常量的值就不能改變 1 const pi 3.1415 2 console.log pi 3 4 pi 3 uncaught typeerror assignment to constant variable.2.const一旦宣告常量,就必須立即初始化,不...

ES6的let與const命令

1.塊級作用域 乙個大括號 所包起來的內容就是乙個塊級作用域 let和const就是塊級作用域,2.嚴格模式 use strict 3.如果在同乙個塊級作用域中,let乙個變數不能重複使用,每乙個變數名只能被let一次,const也是這樣的。4.const定義的是乙個常量,這個常量不能被修改,但是如...

ES6新增的let與const

宣告常量,一旦宣告必須立馬賦值,否則報錯 const pi 3.14 const pi 報錯 uncaught syntaxerror missing initializer in const declaration 常量賦值以後,不能改變,否則同樣報錯 const pi 3.14 pi 3 報錯 ...