var value='up'
if(value=='up'){
console.log('up');
}else if(value=='down'){
console.log('down');
}else if(value=='left'){
console.log('left');
}
上面的代码有两个问题:
- 可读性差:很难记住数字的含义
- 可维护差:硬编码,牵一发动全身。
这可以通过枚举类型来解决。
枚举解决方法
-
枚举内部的 变成 会在内部默认变成字符串.
image.png
- up == 'up' 为string 类型,可以使用typeof进行类校验.
enum Direction {
up,
Down,
left,
right
}
typeof(Direction.up) //等于string类型
解决上面if 难以维护的效果。
enum Direction {
up,
Down,
left,
right
}
console.log(Direction.up) //获取下标 0
console.log(Direction.[0])//获取值 up string类型
var value='up'
if(Direction[0]==value){
console.log('我是up');
}
结果
image.png
常量枚举
常量枚举其实就是是在 enum关键字前使用 const 修饰符,具体提高执行效率的字符
作用:当我们不需要一个对象,而需要对象的值,就可以使用常量枚举,这样就可以避免在编译时生成多余的代码和间接引用
const enum Month {
Jan,
Feb,
Mar
}
console.log(Month); // ReferenceError: Month is not defined
console.log(Month.Jan); //输出0
网友评论