[Javascript] tilde(~)와 double tilde(~~)연산자에 대해서

10tacion·2023년 7월 9일

Javascript

목록 보기
3/8
post-thumbnail

틸드 연산자에 대해서



Javascript에서의 ~ / ~~ 연산자


1. tilde(~) | double tilde(~~)연산자


tilde(~) 연산자

비트 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

double tilde(~~) 연산자

그냥 단순하게 tilde 연산을 두번한 것

그럼 이걸 왜 쓸까?

1. Math.floor()처럼 사용

~~ 연산자를 사용하면 소숫점 이하의 값이 버려져 정수형 데이터를 얻을 수 있고 Math.floor()과 비교했을 때 속도가 빠르다고 한다

2. undefined / null을 0으로 변환

다음과 같이 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}

3. 한줄평


Kota the friend - she 노래 추천

profile
늦게 자고 일찍 일어나기

0개의 댓글