WEB/Javascript
[JavaScript] tilde(~) 연산자
dev-olive
2023. 1. 12. 20:10
tilde(~) 연산자
tilde 연산자는 비트연산자로 NOT의 기능을 한다.
아래와 같이 2진수일 때 0과 1만 뒤바뀐다.
const a = 5; // 0000000000000101
console.log(~a); // 1111111111111010
// -6
double tilde(~~)
tilde를 2번 반복해 주는 것
let k = 8;
~k; // -9
~~k; // 8
Math.floor()를 대신해 사용할 수 있다.
- 속도 측면에서
~~
가 가장 빠르다고는 함 - 다만, 직관적이지 않아 사용하지 않는 것을 권장
- 속도 측면에서
undefined, null을 0으로 변환할 때 사용
undefined + 3 // NaN
의 상황이 생기는 경우를 방지할 수 있다.const arr = [1,1,1,2,2,3,3,3,3]; const obj1 = {}; // obj에 key 값이 있는지 확인해주는 작업이 필요 arr.forEach(v => { if(obj[v]) obj[v] = 0; obj[v] ++; }) // ~~는 undefined를 0으로 반환하기 때문에 간결하게 작성 가능 arr.forEach(v => obj[v] = ~~obj[v] +1);
Reference
https://velog.io/@proshy/JS-tilde%EA%B3%BC-double-tilde%EC%97%B0%EC%82%B0%EC%9E%90