Truthy Falsy Nullish

succeeding·2023년 5월 30일
0

Truthy, Falsy, Nullish

FALSY = [null, undefined, NaN, 0, ""]
TRUTHY = // FALSY 이외의 모든 것
NULLSH = [null, undefined]

Boolean() vs !!

같은 결과를 반환한다.

Boolean() 은 Truty, Falsy를 기준으로 boolean 형변환을 해준다.

  • Truthy 값은 true
  • Falsy 값은 false

Not operator !은 다음과 같이 동작한다.
1. boolean 형변환을 한다.
2. 그 역을 반환한다.

따라서 !!은 아래와 같이 동작할 것으로 추측되며, 결과적으로 Boolean()와 동일한 값을 반환하게 된다.
1. boolean 형변환을 한다.
2. 그 역을 반환한다.
3. 반환된 역 boolean 타입의 값을 boolean 형변환하지만 동일한 값이 반환된다.
4. 3의 역을 반환하므로 그 결과는 1과 같다.

체감하기 어려울 정도의 차이겠지만, Boolean()이 성능상 조금 더 나을 것으로 추정된다.
반면 !!은 코드 작성시 조금 더 간단히 적을 수 있다.

||, &&, ??

||&& 은 Truthy, Falsy 값을 기준으로 동작한다.

반면에, nullish 연산자 ??는 Nullish 값을 기준을 동작한다.

참고자료

0개의 댓글