📜  js 枚举 - Javascript (1)

📅  最后修改于: 2023-12-03 15:02:24.387000             🧑  作者: Mango

JS枚举 - Javascript

在Javascript中,通常使用对象字面量或常量来模拟枚举类型。枚举类型是一种将数值与一些有意义的符号相关联的数据类型。

使用对象字面量模拟枚举类型

使用对象字面量模拟枚举类型很简单,如下示例代码:

const Gender = {
  MALE: 'male',
  FEMALE: 'female'
};

使用方式:

const gender = Gender.MALE;
console.log(gender); // "male"
优点:
  • 简单易懂,易于实现
  • 可以使用对象字面量中的其他特性,比如可以添加方法
缺点:
  • 不能确保定义的枚举值唯一
  • 对象字面量中的属性可被修改或删除,会造成代码出错
使用常量模拟枚举类型

使用常量模拟枚举类型,即定义一个常量数组,如下示例代码:

const Gender = Object.freeze([
  'male',
  'female'
]);

使用方式:

const gender = Gender[0];
console.log(gender); // "male"
优点:
  • 可以确保定义的枚举值唯一
  • 常量数组中的元素不可更改和删除,保证了代码健壮性
缺点:
  • 不能使用对象字面量中的其他特性,比如不能添加方法
常用的枚举用途
定义状态码

将不同状态码封装为枚举类型,方便代码中的调用:

const StatusCode = Object.freeze({
  OK: 200,
  BAD_REQUEST: 400,
  UNAUTHORISED: 401,
  FORBIDDEN: 403,
  NOT_FOUND: 404,
  INTERNAL_SERVER_ERROR: 500
});
定义常量

将常量封装为枚举类型,避免直接使用数字或字符串的魔法数,如下示例代码:

const SEASONS = Object.freeze({
  SPRING: 'spring',
  SUMMER: 'summer',
  AUTUMN: 'autumn',
  WINTER: 'winter'
});
总结

通过模拟枚举类型可以更好地组织代码,提高代码的可读性和易维护性。而使用常量枚举类型则更加适用于需要确保在程序中不可修改的情况下。根据不同需要选择适合的模拟方式以更好地提高代码质量。