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