Gapus Dev Blog

[자바스크립트] == 과 === 에 대해서 본문

프론트엔드/JavaScript

[자바스크립트] == 과 === 에 대해서

Gapus 2023. 11. 14. 19:22

== 연산자

  • 설명
    • 동등 비교 연산자
    • 비교하려는 두 값의 타입이 다를 경우 타입 강제 변환을 하고 비교를 진행
    • 타입 강제 변환이 일어나기 때문에 예상치 못한 결과 가능성 있음
  • 사용하는 이유
    • 타입 강제 변환
      • 비교하려는 값의 타입이 다를 경우 강제 변환을 실행
      • 명시적인 타입 변환 없이도 값을 비교 할 수 있도록 돕는다.
    • 유연한 비교
      • 타입 강제 변환으로 다른 타입과 값을 비교할 수 있다.
      • 일부 상황에서 유용
    • 호환성 유지
      • 오래된 자바스크립트 코드와의 호환성 유지하기 위해 존재
  • 예시
// '==' 연산자 예시
console.log(5 == "5"); // true
console.log(0 == false); // true
console.log(null == undefined); // true
console.log(1 == true); // true

 

 

=== 연산자

  • 설명
    • 엄격한 동등 비교 연산자
    • 비교하려는 두 값의 타입이 다를 경우 타입 강제 변환을 하지 않고 비교를 진행
    • 타입까지 엄격하게 비교하기 때문에 보다 안전한 비교 가능
  • 사용하는 이유
    • 타입의 안전성
      • 비교하려는 값의 타입까지 엄격하게 검사
      • 예상치 못한 타입 변환으로 인한 오류를 방지
      • 코드의 안전성 향상
    • 의도한 비교
      • 값뿐만 아니라 타입까지 비교하기 때문에, 개발자의 의도한 비교를 명확히 표현 가능
    • 코드의 가독성
      • 타입까지 엄격하게 비교하기 때문에, 코드를 읽는 사람이 비교 연산의 의도를 더 잘 이해 가능
      • 코드의 가독성 향상
  • 예시
// '===' 연산자 예시
console.log(5 === "5"); // false
console.log(0 === false); // false
console.log(null === undefined); // false
console.log(1 === true); // false