: 32비트 정수로 변환 후 NOT 연산을 실행
3
~3 // -4
=> 2의 보수 -(n + 1) 와 같다!
: -(n + 1) 와 같다는 성질을 이용해 조건문에서 Tilt(~)를 사용할 수 있다.
let str = "Hello World";
if (~str.indexOf("He")) { // 해당 문자열이 있다면 조건문 실행
console.log("참"); // 참
} else {
console.log("거짓");
}
: Tilt(~) 사용시 숫자의 소수점을 버리게 되며, Tilt(~) 연산을 두 번 시킴으로 원래 상태로 되돌아간다.
let num = 123.456;
console.log(~~num); // 123
=> 양수에서 Math.floor() 와 같은 결과값 반환, 음수에선 결과값이 달라질 수 있다.