const 声明一个只读的恒量或常量,变量声明过后不许允许被修改,也就是说const在声明的同时就必须赋值
const name = 'Judy'
name = 'Carl' // TypeError: Assignment to constant variable.
const声明的成员不能被修改,实质上是不允许声明后的变量指向一个新的内存地址,并不是不允许修改恒量中的属性成员。
const obj = {}
obj.a = 1
console.log(obj) // { a: 1 }
obj = [] // TypeError: Assignment to constant variable.
建议:默认使用const声明变量,一定要修改的值let,不用var,这样先声明再使用能够提高代码质量。
PS:学习笔记,如有补充欢迎沟通交流。
一位上神提了个问题,大家可以一起思考以下,后面有时间会补充,此处立个flag:
todo: ES6是语法糖,那么用ES5怎么实现const呢?
用Object.defineProperties()结合数据属性writable等实现