枚举可以提高代码的编程质量, 加强代码的可读性

javascript 没有枚举类型, 以下实现方式只是模拟枚举概念

有不对地方请指出


Examples-1

//定义一个表示周的枚举
var Week = {
    Sunday : 0,
    Monday : 1,
    Tuesday : 2,
    Wedesay : 3,
    Thursday : 4,
    Friday : 5,
    Saturday : 6
};

//在使用过程中直接使用 Week.Sunday // 0


Examples-2

//有这么一个场景, 前端与后端约束某个数据结构如下:
var enum = xxx;
// enum = 0 时为 苹果, enum = 1 时为 三星 ...
//所有可能性有这些 ["苹果","三星","小米","华为","vivo","魅族" ... ];
//其实这个时候我们可以这样设计代码:
//前端默认枚举值
var enum = ["苹果","三星","小米","华为","vivo","魅族" ... ];
//后端返回值
var key = 0;
//获取对应的值
var value = enum[key];
//这么修改后就可以大大的减少 if else switch


Examples-3

大家编码时有没有遇到过这样一个场景。

var key = "xxx";
if(key == "css"){
    // function ...
}else if(key == "html"){
    // function ...
}else if(key == "javascript"){
    // function ...
}else{
    // function ...
}   

大家都知道, if else 尽可能少用。有人会说用 switch 呗, 实现如下

switch(key){
    case "css":
        // function ...
        break;
    case "html":
        // function ...
        break;
    case "javascript":
        // function ...
        break;
    default :
        // function ...
}

这样是能很好的解决问题, 大家想想还有没有更好的方案呢

  
var enum = {
    "css" : function(){
        //...
    },
    "html" : function(){
        //...
    },
    "javascript" : function(){
        //...
    },
};
var def = function(){
    // ...
}
(enum[key] || def)();
//这样修改后就彻底的不使用 if else switch