Develope/Javascript

[Javascript]Tilt(~) 연산자 사용법

oper0116 2021. 2. 3. 21:33
반응형

Tilt(~) 연산자 사용법

틸트(Tilt) 연산자를 사용하게 되면 내부적으로 32비트 정수로 변환 후 NOT 연산자를 실행한다.

9
~9 // -10

최종적으로 2의 보수 -(n+1)와 같다.

Tilt(~)를 사용하여 참, 거짓 처리

-(n+1)와 같다는 성질을 이용하여 조건문에서 Tilt(~)를 이용할 수 있다.

const str = "Hello World";

if (~str.indexOf("ll")) {
  console.debug('참');
} else {
  console.debug('거짓');
}

const arry = [1, 2, 3];
if (arry.findIndex(item => item === 2)) {
  console.debug('참');
}

Tilt(~)를 두개 사용하여 비트 잘라내기

Tilt(~) 사용시 숫자의 소수점을 버리게 되며, ~(Tilt) 연산을 두번 시킴으로써 결과적으로는 원래 상태로 되돌리게 된다.

이러한 소수점 버림 처리는 양수에서는 Math.floor()와 동일하게 적용되어 결과값이 같으나,
음수에서는 결과값이 달라질 수 있다.

~~52.3;  // 52
Math.floor(52.3);  //52

~~-43.2; // -43
Math.floor(-43.2); // -44

참고자료

[https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Bitwise_NOT]

반응형