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

在ES5之前,定义常量,只能通过单例模式。只定义取值器,不定义赋值器,即可实现。

// 单例模式
var CONST = (function () {
	// 定义静态变量的容器
	var _const = {
		MAX_NUM: 500,
		MIN_NUM: 100
	}
	// 返回的接口中,只定义取值器
	return function (key) {
		return _const[key.toUpperCase()]
	}
})()

// 取值
console.log(CONST('MAX_NUM')) //500
console.log(CONST('min_num')) //100

 

 

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值