다른 포스팅에서 '.Net'에서 열거형 멤버(enum)를 비트 연산으로 활용하는 방법을 알아보았습니다.
(참고 : [.NET] 열거형 맴버(enum)의 플래그(Flags)와 비트(bit) 연산 )
이번 포스팅에서는 자바스크립트에서는 어떻게 사용하는지 알아봅시다.
자바스크립트에서도 비트로 값을 넣을 수 있습니다.
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 };
//모든값 빼기 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)
위 기능들은 자주 쓰는 기능들이라 따로 개체를 만들어 사용하면 편합니다.
그래서 유틸로 만들었습니다.
다운로드 :
소스 코드 : Github - dang-gun/DGUtility_WebScript/DG_FlagEnum/DG_FlagEnum.js
완성된 샘플 : Github - dang-gun/DGUtility_WebScript/DG_FlagEnum/
타입스크립트로 구현돼있는 것을 참고하여 작성하였습니다.
원 출처를 못 찾았다는 게 함정;;;
아시는 분은 댓글 남겨주세요.