美文网首页
JavaScript中的Enum枚举类型数据

JavaScript中的Enum枚举类型数据

作者: 长城_changcheng | 来源:发表于2019-03-10 01:38 被阅读0次

    一、枚举类型介绍

    1、枚举类型

    如果接触过其它语言或者TypeScript,大概对于枚举类型有一些了解。枚举类型是什么,在计算机学术界的定义繁奥且复杂,具体请参考百度百科-枚举,在这里我将其定义理解为:枚举是一种定义成员与值的映射关系的有穷序列集的数据类型。当然,在实际应用中能够对其理解的更加深入。

    2、ECMAScript中的枚举类型

    在ECMAScript2015标准中尚未实现支持原生的枚举类型,但enum一直作为一个保留关键字而存在,将来有望实现原生支持。但是TypeScript作为JavaScript的超集,提前实现了对枚举类型的语法支持。下面的实例均是以TypeScript语法为例的。

    3、枚举类型的特性
    (1)自增性
    enum Direction {
        Up,
        Down
    }
    console.log(Direction[0]);   // 输出结果“Up”
    console.log(Direction[1]);   // 输出结果“Down”
    

    注释:如果不对成员进行初始化赋值,则其值将会从0开始自动递增。这种特性在实际运用中是非常有用的。

    (2)映射性
    enum Direction {
        Up,
        Down = "下"
    }
    console.log(Direction.Up);           // 输出结果0
    console.log(Direction[0]);           // 输出结果0
    console.log(Direction.Down);      // 输出结果1
    console.log(Direction["下"]);      // 输出结果undefined
    

    注释:在Typescript中,字符串枚举并不具有相互映射的特性。目前还尚不清楚为什么Typescript不支持这种特性,但我仍然认为它十分有用,比如在进行文本国际化的时候。

    4、在JavaScript中使用枚举

    由于ECMAScript不提供对Enum类型的原生支持,所以理所当然JavaScript也不支持Enum类型,但JavaScript却可以模拟出类似的特性来,请看下面示例:

    var Direction = {
        left: 0,
        right: 1,
        top: "上",
        bottom: "下",
        0: left,
        1: right,
        上: "top",
        下: "bottom"
    };
    console.log(Direction.left);    // 输出结果为:0,
    console.log(Direction[0]);     // 输出结果为:"left"
    console.log(Direction["上"]);     // 输出结果为:"top"
    console.log(Direction["下"]);     // 输出结果为:"bottom"
    

    上述示例中的Direction对象就可以视作一个Enum类型。

    相关文章

      网友评论

          本文标题:JavaScript中的Enum枚举类型数据

          本文链接:https://www.haomeiwen.com/subject/cppjpqtx.html