티스토리 뷰

!! 연산자는 자바스크립트에서 boolean이 아닌 값을 boolean으로 변환시킬 때 사용한다. 

이를 통해서 변수가 존재하는지 혹은 유효한 값을 갖는지 확인할 수 있다.

데이터를 자동으로 불리언으로 바꿔준다. 만약 데이터가 falsy값 (0, "",'',null, NaN, undefined)들 중 하나라면 false를 반환할 것이다. 이 외의 경우는 true를 반환한다. 이를 통해서 falsy값을 논리연산 boolean값만 반환하게 만들 수 있다. 

 

이중 부정 연산자 예시

  • 아래와 같이 2가지 방법으로 사용할 수 있다. 
const isAnd = (a,b) => !!(a&&b)

isAnd('hello','world') //true
!!('hello'&&'world') // true

 

나의 경우, 단일 연결 리스트의 insert 메서드를 구현하다가 예시 코드 중 아래와 같은 내용을 발견하여 찾아보게 됐다.

if(index === this.length) return !!this.push(val);
  • 만약 this.push(val)의 값이 falsy값이라면 이중 부정을 통해서 논리연산 boolean값만 반환하게 만들 수 있기 때문에 사용한 거 같다. 

 

어떤 메서드가 여러 값으로 나오는 것보단 true 혹은 false 와 같은 논리연산 boolean 값만 반환하게 강제하도록 하는 것이 좋은 메서드라고 한다. 이렇게 하면 디버깅이 쉬워질 거 같다. 

 

 

댓글