
틸드 연산자에 대해서
비트 NOT 연산자(~)로 피연산자의
비트를반전시킨다
2진수일 때 0과 1만 뒤바꾼다고 생각하면 됨*다른 비트 연산자와 마찬가지로 피연산자를 32비트 정수로 변환
const a = 4; // 0000000000000100
console.log(~a); // 1111111111111011
// expected output: -5
const b = -3; // 1111111111111101
console.log(~b); // 0000000000000010
// expected output: 2
그냥 단순하게 tilde 연산을 두번한 것
그럼 이걸 왜 쓸까?
~~연산자를 사용하면 소숫점 이하의 값이 버려져정수형 데이터를 얻을 수 있고Math.floor()과 비교했을 때 속도가 빠르다고 한다
다음과 같이 undefined or null 값이 나올 수 있는 상황에
~~을 이용한다면 0으로 변환하여 사용 할 수 있돠
const arr = [1,1,1,2,2,3,3,3,3]
const obj1 = {}
arr.forEach(v=>obj1[v]= ~~obj1[v]+1)
//obj2 {1: 3, 2: 2, 3: 4}
Kota the friend - she 노래 추천