백엔드
JavaScript enum
_민영
2023. 4. 4. 19:52
< 열거형 enum >
> enum은 상수 값 중에 비슷한 종류들을 묶어두기 위한 용도로 자주 사용된다.
많은 프로그래밍 언어들은 enum을 데이터 타입에 포함하고 있지만 자바스크립트는 포함하고 있지 않다.
하지만 조금이나마 비슷하게 작동할 수 있는 데이터를 자바스크립트에서도 간단하게 만들 수 있기는 하다.
> enum의 장점
- 코드가 단순해지고 가독성이 좋아진다.
- enum이란 이름 자체만으로 열거 의도를 분명히 알 수 있다.
- 하나의 변수에 대해 고정값으로 이용이 가능하다.
- 안정적이며 읽기 쉽고, 오류의 발생도 줄일 수 있다.
const Season = {
SPRING: "spring",
SUMMER: "summer",
AUTUMN: "autumn",
WINTER: "winter"
};
const Season = {
SPRING: "spring",
SUMMER: "summer",
AUTUMN: "autumn",
WINTER: "winter"
};
Season.SPRING = "summer";
console.log(Season.SPRING); // summer
하지만 문제가 있는데, "key": "value" 값을 가진 이 데이터의 값은 변경될 수 있다.
실제로 상수들의 집합 역할을 하는 enum의 역할을 수행하기 위해서는 선언한 값을 외부에서 변경할 수 없어야 한다.
-> Object.freeze() 메서드 사용하여 문제 해결
< Object.freeze >
> Object.freeze() 메서드는 객체를 동결해서 더 이상 변경하지 못하도록 한다.
그렇기 때문에 속성은 불변성을 지니게 된다.
const Season = {
SPRING: "spring",
SUMMER: "summer",
AUTUMN: "autumn",
WINTER: "winter"
};
Object.freeze(Season);
Season.SPRING = "summer";
console.log(Season.SPRING); // spring