프로그래밍/웹관련
[javascrpt] 자바스크립트에서 열거형(enum)의 비트(bit) 연산
당근천국
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. 개체 만들기
위 기능들은 자주 쓰는 기능들이라 따로 개체를 만들어 사용하면 편합니다.
그래서 유틸로 만들었습니다.
다운로드 :
소스 코드 : Github - dang-gun/DGUtility_WebScript/DG_FlagEnum/DG_FlagEnum.js
마무리
완성된 샘플 : Github - dang-gun/DGUtility_WebScript/DG_FlagEnum/
타입스크립트로 구현돼있는 것을 참고하여 작성하였습니다.
원 출처를 못 찾았다는 게 함정;;;
아시는 분은 댓글 남겨주세요.