[ Weekly Paper3 ] - 자바스크립트에서 == 와 === 의 차이

YUYONI·2023년 12월 5일
0

코드잇 스프린트 3기

목록 보기
12/31
post-thumbnail

✨ == (동등 비교 연산자)

  • ==은 동등 비교 연산자로, 두 값의 동등을 확인 할 때 암묵적으로 타입 변환(Type Coercion)을 해서 느슨한 비교를 함
  • 즉, 두 변수의 타입이 다를 경우, 자바스크립트는 두 변수를 같은 타입으로 변환한 후 비교함
  • 그래서 0 == '0' 는 하나는 string, 하나는 Number형이지만 타입 변환 후 같은 값이라고 판단되므로 true로 반환됨

✨ === (일치 비교 연산자)

  • ===은 일치 비교 연산자로, 두 값의 타입과 값 모두 비교하는 엄격한 비교를 함
  • 즉, 값과 타입이 모두 동일한 경우에만 true를 반환
  • 그래서 0 == '0'의 경우 값은 같지만 type이 다르므로 false를 반환함



⚠️ NaN은 자신과 일치하지 않는 값!

NaN은 자신과 비교해도 false가 나옴

console.log(NaN == NaN); // false
console.log(NaN === NaN); // false

그래서 어떤 값이 NaN값인지를 검사하고 싶다면 Number.isNaN(어떤값) 또는 ES6에서 도입된 Object.is 메서드를 사용해야함

console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(10)); // false

console.log(Object.is(NaN, NaN)); // true
console.log(Object.is(10, NaN)); // false




💡 ===== 중 어떤 것을 사용해야 하는지 ?


=== 으로 좀 더 엄격하게 비교하는 것이 예상치 못한 타입 변환으로 인한 오류를 방지하기 때문에 자바스크립트에서 값을 비교할 때 === 이 더 권장됨. == 연산자는 명시적으로 타입 변환이 필요한 상황에만 사용하는 것이 좋음
profile
기본기와 원리, 개념 철처하게 다지기!

0개의 댓글