ES6爬坑之路之const关键字

来源:互联网 发布:秦舞阳13岁杀人知乎 编辑:程序博客网 时间:2024/06/07 00:50

const关键字声明的变量是readonly(只读的)的,即const修饰的是常量,例:

const pi=3.1415926;pi=3;console.log(pi)// error

此外const也具有与let一样的 暂时性死区、块级作用域、不允许重复声明等性质。
注意,当使用const关键字修饰对象时,const指向的是对象的内存地址,但是对象的属性是可变的,例如:

const person={};person.name="zhangsan";person.age=9;console.log(person.name);//zhangsanconsole.log(person.age);//9
person={};console.log(person);//error

那么如何让一个对象不能修改呢?使用object.freeze()方法使对象冻结,

const person=object.freeze({});person.name="zhangsan";person.age=9;console.log(person.name);//undefinedconsole.log(person.age);//undefined
冻结对象的使用,在定义时就给属性赋好值const person=object.freeze({    name:"zhangsan",    age:9})console.log(person.name);//zhangsanconsole.log(person.age);//9