Geuni

falsy에 대한 고찰

구조분해할당 기본값

아래와 같은 코드가 있다.

const { code = "" } = error;

code에 값이 있다면 그 값이 사용되겠지만, 기본값으로 빈 문자열("")이 할당되는 경우는 언제일까?

정답은, code가 undefined일 때만 기본값이 할당된다.

즉, error.code가 null, 0, false 등의 값이라도 그대로 할당되며, 오직 undefined일 때만 기본값이 적용된다.


Falsy 값과 조건문

조금 더 나아가서 아래와 같은 코드가 있다.

const { code = "" } = error;

return code ? `[${code}]` : "";

이 경우 빈 문자열("")이 리턴되는 경우는 언제일까?
code가 다음과 같은 falsy 값일 때 빈 문자열이 리턴된다.

false,
0,
""(빈 문자열),
null,
undefined,
NaN,

자바스크립트에서는 이 6가지 값을 falsy 값이라고 하며, 이를 제외한 모든 값은 truthy 값이다.


빈 객체와 빈 배열

의외로 빈 객체, 빈 배열은 truthy 값이다.

if ([]) {
  return "truthy";
}

if ({}) {
  return "truthy";
}

두 코드 모두 truthy가 출력된다.


참고자료

MDN, 구조 분해 할당 기본값

falsy에 대한 고찰 | geuni