用于取值被限定在一定范围内的场景,不能超出范围;
使用场景:权限划分/等级划分,等有固定范围等内容;
-
普通枚举:会被编译进最后的代码中;
语法:enum names { one, two , thr };// 枚举成员默认会被递增赋值为从0开始的数字; enum names { one, two , thr }; names['one'] --> 0; names['two'] --> 1; name[0] ==> 'one'; name[1] ==> 'two';// 也可以手动赋值; enum names { one = 1, two, thr }; names['one'] --> 1; names[1] ==> 'two'; // 手动赋值的枚举项与后面的重复了,会被后面的枚举项覆盖;// 枚举两种类型:常数项/计算所得项; enum names { one, two, thr= 'thr'.length }; // thr为计算所得项; // 计算所得项后面不能再添加常数项; enum names { one, two, thr = 'thr'.length , four}; // 报错,但可以继续添加计算所得项; -
常数枚举:编译时会被删除,且不能包含计算所得项;
语法:const enum names { one, two, thr };const enum names { one, two, thr = 'thr'.length }; // 报错; -
外部枚举:编译时会被删除,常出现在声明文件中;
语法:declare enum names { one, two, thr };