ECMAscript新特性 - const 恒量/常量

100 阅读1分钟

 Es2015中还新增了一个 const 关键词用来声明一个只读的恒量/常量,它的特点就是在 let 的基础上多了一个只读特性。所谓的只读指的就是变量一旦声明过后就不能够再被修改,如果去修改一个已被声明过的 const 常量就会报错。既然 const 所声明的是常量,那么就要求在声明时必须要有一个初始值,声明和赋值不能像 let 或者 var 一样放到两个语句当中。这里的所说的修改实际上指的就是不能重新指向新的内存地址,并不是说我们不能修改恒量中的属性成员。例如,使用 const 声明了一个对象 obj  等于一个空对象 {},然后去设置这个对象的 name 属性。这种情况实际上并没有修改 obj 所指向的内存地址,它只是修改了这块内存空间的当中的数据所以说是被允许的。相反,如果说是将 obj 等于一个新的空对象,此时就会报错因为这种赋值他会改变 obj 的内存指向。除此之外 const 的其他特性都和 let 关键词相同。在项目的最佳实践就是,不用 var、默认全部使用 const、对于一定会需要修改的值使用 let 去声明。按照这种方式去选择的话代码质量实际上会用明显的提高,因为 var 会导致很多陋习所以坚决不用、默认使用 const 的原因是因为它可以让开发者更明确代码中所声明的成员会不会被修改。