常量枚举的定义
使用 const enum 进行常量枚举的定义,
格式如下 :
const enum 枚举类型名称{
元素1,
元素2,
。。。。。。
}
常量枚举的特殊的地方
常量枚举 : 在编译后是不存在的。
在使用常量枚举的元素的时候,编译之后会直接用它的值。
体会一下区别
普通枚举
- 编译前源代码
enum WEEK1 {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
console.log(WEEK1)
console.log(WEEK1.MONDAY)
console.log(WEEK1[0],WEEK1['1'])
- 编译后的js代码
打印的语句仍然是通过元素来获取对应的值
var WEEK1;
(function (WEEK1) {
WEEK1[WEEK1["MONDAY"] = 0] = "MONDAY";
WEEK1[WEEK1["TUESDAY"] = 1] = "TUESDAY";
WEEK1[WEEK1["WEDNESDAY"] = 2] = "WEDNESDAY";
WEEK1[WEEK1["THURSDAY"] = 3] = "THURSDAY";
WEEK1[WEEK1["FRIDAY"] = 4] = "FRIDAY";
WEEK1[WEEK1["SATURDAY"] = 5] = "SATURDAY";
WEEK1[WEEK1["SUNDAY"] = 6] = "SUNDAY";
})(WEEK1 || (WEEK1 = {}));
console.log(WEEK1);
console.log(WEEK1.MONDAY);
console.log(WEEK1[0], WEEK1['1']);
常量枚举
- 编译前源代码
const enum A {
a,b,c
}
// console.log(A)// 错误,不可以使用,因为这个编译之后是不存在的
console.log(A.a)
- 编译后的js代码
打印的直接是 对应的元素 的数值!!!
// console.log(A)// 错误,不可以使用,因为这个编译之后是不存在的
console.log(0 /* A.a */);