JavaScript에서 ==와 ===의 차이
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
JavaScript 초보 개발자 및 중급자
- 난이도: 기초 수준 (타입 강제 및 비교 연산자 이해 필요)
핵심 요약
==
(loose equality)는 타입 변환을 통해 값 비교===
(strict equality)는 타입과 값 모두 동일해야 같음===
사용 권장 (예측 가능성과 안정성 확보)
섹션별 세부 요약
1. 비교 연산자 기본 개념
==
는 값의 타입이 다를 경우 자동 변환 (예:0 == "0"
→true
)===
는 타입과 값 모두 동일해야true
(예:0 === "0"
→false
)==
는 유연하지만 예상치 못한 결과 발생 가능성 (예:null == undefined
→true
)
2. 실무 예시와 위험성
==
사용 시"0"
(문자열)이나[]
가false
로 처리될 수 있음===
사용 시 정확한 조건 검사 가능 (예:inputValue === ""
→ 빈 문자열만 인식)[] == false
→true
(배열 → 빈 문자열 →0
→false
로 변환)
3. 현대 JavaScript 개발 관행
==
는 생산성 코드에서 거의 사용되지 않음 (타입 강제 추구)===
는 예측 가능성과 안정성을 위한 표준- "타입을 명확히 알고 사용하라"는 원칙 강조
결론
- 모든 비교 연산에서
===
사용 (예외 없음) ==
사용 시 타입 변환으로 인한 오류 가능성 고려- "JavaScript가 의도를 예측하지 않도록 강제"하는 것이 안정적인 코드 작성 방법