2020. 2. 25. 15:30

다른 포스팅에서 '.Net'에서 열거형 멤버(enum)를 비트 연산으로 활용하는 방법을 알아보았습니다.

(참고 : [.NET] 열거형 맴버(enum)의 플래그(Flags)와 비트(bit) 연산 )

 

이번 포스팅에서는 자바스크립트에서는 어떻게 사용하는지 알아봅시다.

 

연관글 영역

 

 

1. 자바스크립트(javascrpt)에서 열거형 멤버를 비트로 선언하기

자바스크립트에서도 비트로 값을 넣을 수 있습니다.

 

var Auth3Type = {
    None: 0,
    Opt0: 1 << 0,
    Opt1: 1 << 1,
    Opt2: 1 << 2,
    Opt3: 1 << 3,
    Opt4: 1 << 4,
    Opt5: 1 << 5,
    Opt6: 1 << 6
};

 

 

2. 비트 연산 하기
//모든값 빼기
typeAuth3 = Auth3Type.None;

//값 넣기
typeAuth3 = Auth3Type.Opt1 | Auth3Type.Opt3;

//기존 값에 추가하기
typeAuth3 |= typeAuth3, Auth3Type.Opt5 | Auth3Type.Opt6;

//기존 값에서 빼기
typeAuth3 &= ~Auth3Type.Opt3;

//값 반전(있으면 빠지고 없으면 추가됨)
typeAuth3 ^= Auth3Type.Opt6;

//특정값 확인
!!(typeAuth3 & Auth3Type.Opt1)

 

 

지정한 키가 들어있는지 확인

해당 비트값에 지정한 값이 들어 있는지 확인 하려면 아래와 같이 연산하면 됩니다.

//있으면 true가 나온다.
!!(value & key)

 

 

3. 개체 만들기

위 기능들은 자주 쓰는 기능들이라 따로 개체를 만들어 사용하면 편합니다.

 

그래서 유틸로 만들었습니다.

 

다운로드 : 

DG_FlagEnum.js
다운로드

 

소스 코드 : Github - dang-gun/DGUtility_WebScript/DG_FlagEnum/DG_FlagEnum.js

 

 

마무리

완성된 샘플 : Github - dang-gun/DGUtility_WebScript/DG_FlagEnum/ 

 

타입스크립트로 구현돼있는 것을 참고하여 작성하였습니다.

원 출처를 못 찾았다는 게 함정;;;

아시는 분은 댓글 남겨주세요.