上QQ阅读APP看书,第一时间看更新
2.3 常量
在ES6及以后,JavaScript支持使用const关键字定义常量。常量是只读的(Read-Only),且和值之间的绑定关系是不可变的(Immutable Binding),即只能在定义的时候给常量赋值一次,后边再重新赋值就会出错。变量与值之间的绑定关系则是可变的(Mutable Binding),即变量可以被重新赋值。另外,常量也不能重复进行定义。需要注意的是,赋给常量的值,本身是可变的,例如把一个对象赋值给常量,那么对象里的内容仍然可以被修改。
常量可以给没有实际意义的数值起一个别名,让它更有意义,这样在使用该常量获取数值时,就能够清楚地知道它的作用。常量也可以防止被篡改,因为常量只能在定义的时候赋值一次,后续就不能再重新赋值了,常见的场景是:在引入其他第三方库的时候,可以使用const关键字接收它导出的模块变量,如果在代码中不小心对它进行了重新赋值操作,则程序就会抛出异常,阻止该操作,如果使用let关键字,则重新赋值的操作就会生效,后边想要再使用第三方库中的操作时,就会引发多种问题,轻则找不到该操作,重则执行了其他操作而导致隐晦的Bug。