常量枚举的定义
使用 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 */);