falsy values

개념

falsy value는 어느 특정 변수안에 있는 값이 false가 아니더라도 비교하거나 판별할 때 false로 취급하는 값을 말합니다.

자바스크립트에서는 총 6가지 falsy value가 있으며, 다음과 같습니다.

  • undefined
  • null
  • NaN
  • 0
  • "" (empty string)
  • false

주의할 점

빈 배열, 빈 객체

빈 배열이나 빈 객체도 falsy value로 착각 할 수 있으니 꼭 테스트 해보길 바랍니다.

const emptyArr = [] // truthy
const emptyObj = {} // truthy

빈 배열에서 이상한점

빈 배열은 truthy 라고 위에 언급했지만, 다음 같은 경우는 다르다

[] == false // truthy
[] == true // falsy

loose equality operation(==)으로 비교할 경우, boolean 값은 Number() 함수를 사용되어 Number type으로 변경된다.

[] == 0 // [] == Number(false)

Object type으로 된 값은 primitive value로 변경된다.

"" == 0

마지막으로 empty string은 Number type으로 변경된다.

0 == 0 // true

참고

tutorialspoint > if-false-is-true-why-does-true-result-in-javascript