Truthy와 Falsy 개념 이해: JavaScript 개발자에게 필요한 핵심 지식
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
초보~중급 JavaScript 개발자 (난이도: 중간)
핵심 요약
===
을 사용해 엄격한 동등비교를 수행 (예:0 === false
→false
)- Falsy 값 목록:
false
,0
,-0
,0n
,""
,null
,undefined
,NaN
- 배열/객체는 항상 truthy (예:
[] == false
→true
로 유도) !!
연산자로 명시적 Boolean 변환 (예:!!userInput
→true
/false
)
섹션별 세부 요약
- 로ose typing (유연한 타이핑)
- 변수 타입을 명시하지 않아도 변경 가능 (예:
let x = 5; x = "hello";
) - 유연성 대신 비교 연산자 오류 발생 가능성 증가
==
연산자는 타입 변환 후 비교 (예:0 == false
→true
)
- 엄격한 동등비교 (
===
)
- 타입과 값 모두 동일해야
true
(예:0 === false
→false
) - Best Practice:
===
사용을 권장 (예:if (value === false)
)
- Truthy/Falsy 구분
- Falsy 값:
false
,0
,""
,null
,undefined
,NaN
- Truthy 값: 비어 있지 않은 문자열, 배열, 객체, 함수 등
- 예외:
[] == false
→true
(빈 배열은 빈 문자열로 변환됨)
- 실무 팁 및 혼동 방지
==
대신===
사용 (예:"" === 0
→false
)- 명시적 Boolean 변환:
!!value
사용 (예:!!""
→false
) - 직접
true
/false
와 비교하지 않도록 (예:if (!value)
대신if (value === false)
)
결론
JavaScript에서 ===
을 사용하고, !!
로 명시적 Boolean 변환을 통해 예상치 못한 버그를 방지하며, Falsy 값 목록을 정확히 기억하는 것이 실무 적용에 필수적입니다.