js中的const定义常量
js中⼀旦被定义就⽆法再被修改的变量,称之为常量
在es6之前,定义变量不管是静态还是动态都⽤var,例如:
var PI = Math.PI;
PI = 100;
console.log(PI) //100
但是这样会有⼀个弊端,像原本并不想改变的值,如果写错了代码,可能就改变了,造成了错误。如上,圆周率PI是固定的值,这⾥的误操作给他赋值了100,这样以后再⽤到圆周率PI来计算的时候就造成了错误。于是es6优化了常量的定义,避免了更改它⽽产⽣错误。
ES6中通过const定义常量,常量通常⽤⼤写字母定义,多个单词之间⽤_分隔。
const定义常量的特点:
1 如果修改常量会报错
const PI = Math.PI;
PI = 100;
console.log(PI)
2 常量不⽀持声明前置
console.log(PI);
const PI = Math.PI;
3 常量是⼀个块作⽤域
if (true) {
const COLOR = 'red';
}
console.log(COLOR)
那么,在es5中如何定义⼀个不可改变的常量呢?
在ES5中,可以冻结⼀个对象来定义常量来达到const定义常量的效果。
// 在ES5中通过冻结对象定义常量
var CONST = {
MAX_NUM: 100,
MIN_NUM: 10
}
Object.freeze(CONST);
/
/ 尝试更改
CONST.MAX_NUM = 200;
console.log(CONST.MAX_NUM) //100
const的作用在ES5之前,定义常量,只能通过单例模式。只定义取值器,不定义赋值器,即可实现。
// 单例模式
var CONST = (function () {
// 定义静态变量的容器
var _const = {
MAX_NUM: 500,
MIN_NUM: 100
}
/
/ 返回的接⼝中,只定义取值器
return function (key) {
return _UpperCase()]
}
})()
// 取值
console.log(CONST('MAX_NUM')) //500
console.log(CONST('min_num')) //100

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。