LHJ

I'm a FE developer.

5.7.1 참 같은 값과 거짓 같은 값

21 Apr 2020 » js_lj

‘참 같은 값’과 ‘거짓 같은 값’이란 개념이 있는 언어도 많고, C 언어처럼 불리언 타입이 아예 존재하지 않는 언어도 있습니다.

C 언어에서 숫자 0은 false이고다른 숫자형 값은 모두 true입니다.

자바스크립트는 이들을 적절히 혼합한 방식을 취합니다.
자바스크립트에서는 모든 데이터 타입을 참 같은 값과 거짓 같은 값으로 나눌 수 있습니다.
자바스크립트에서 거짓 같은 값은 다음과 같습니다.

  • undefined
  • null
  • false
  • 0
  • NaN
  • ’’ (빈문자열)

이들 외에는 모두 참 같은 값입니다.
참 같은 값은 정말 많으므로 전부 나열할 수 없지만 몇 가지는 염두에 두어야 합니다.

  • 모든 객체, valueOf() 메서드를 호출했을 때 false를 반환하는 객체도 참 같은 값에 속합니다. valueOf() 설명
  • 배열, 빈 배열도 참 같은 값에 속합니다.
    (역주_ 빈 배열은 참 같은 값이지만, [] == false는 true입니다.)
  • 공백만 있는 문자열 (“ “) 등
  • 문자열 “false”

문자열 “false”가 true라는 사실에 놀라는 사람들이 있지만, 이를 제외하면 대부분 직관적으로 이해할 수 있고 기억하기도 쉬운 편입니다.
한 가지 예외를 더 들자면 빈 배열이 참 같은 값이라는 사실입니다.
빈 배열 arr이 거짓 같은 값으로 평가되길 원한다면 arr.length를 쓰십시오.
빈 배열에서 이 프로퍼티를 호출하면 0을 반환하며 이는 거짓 같은 값입니다.