티스토리 뷰

자바스크립트에서는 데이터 타입이 상황에 따라 변할 수 있습니다.

if ('쑥쑥') {
  console.log('I love JavaScript! :)');
} else {
  console.log('I hate JavaScript! :(');
}

if문의 조건 부분에는 보통 true나 false값이 리턴되는 조건식이 들어갔었는데요.

이 코드에서는 그냥 문자열이 들어가 있습니다. 그럼 과연 이 코드를 실행했을 때 콘솔에는 어떤 결과가 출력 될까요?

실제로 이 코드를 실행해보면 콘솔에는 'l love JavaScript! :)'라는 문자열이 출력됩니다.

 

if문의 조건 부분에 들어간 이 'codeit'이라는 문자열이 true처럼 평가되었다는 뜻인데요.

자바스크립트에서는 if, for, while문의 조건 부분처럼 불린 타입의 값이 필요한 맥락에서는 불린이 아닌 다른 타입의 값들도 불린 타입으로 평가되는 특징이 있습니다.

다시 말해서 불린이 아닌 타입의 값이 불린 타입으로 형 변환 된다는 것이죠.

 

자 그럼 구체적으로 어떤 값이 true처럼 평가되고 어떤 값이 false처럼 평가될까요?

False로 평가되는 값(Falsy 값): false, null, undefined, NaN, 0, ''

True로 평가되는 값(Truthy 값): 나머지 값들!

자바스크립트에서는 false 뿐만 아니라 null, undefined, NaN 숫자 0, 그리고 빈 문자열이 false처럼 평가되고 나머지 값들은 모두 true처럼 평가됩니다.

이때 Flase로 평가되는 값들을 Falsy 값이라고 부르고 반대로 True로 평가되는 값들을 Truthy 값이라고 부르는데요.

참고로 숫자 0과 빈 문자열이 Falsy 니까 간혹 빈 배열이나 빈 객체도 Falsy 값이라고 오해하는 경우가 있는데 빈 배열과 빈 객체는 모두 Truthy 값이니까 잘 기억해 두면 좋을 것 같습니다.

 

Boolean 값을 이용해서 알고자 하는 값을 불린 타입으로 직접 변환해 볼 수도 있습니다. Boolean 함수를 사용했을 때 Falsy 값들은 모두 false를 Falsy 값을 제외한 값들은 모두 true를 리턴하게 된다는 점도 참고해 두면 좋을 것 같습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함