[JS]== vs ===

2024. 11. 9. 17:54·Language/JavaScript

자바스크립트를 공부하다 보면, 값 비교 연산자인 ==와 ===의 차이점을 이해하는 것이 매우 중요하다. 이 두 연산자는 모두 값의 동등성을 비교하지만, 동작 방식에서 중요한 차이가 있기 때문에 주의하여 사용해야 한다.

동등 연산자(Equality Operator)

== 연산자는 값의 동등성을 비교할 때 사용하는 연산자이다. 그러나 값의 타입이 서로 다를 경우, 타입 변환을 통해 동일한 타입으로 맞춘 후 비교를 수행한다. 이러한 자동 형 변환 때문에, ==는 자주 예상하지 못한 결과를 나타낼 수 있다.

console.log(1 == '1'); //true, '1'이 숫자 1로 변환되어 비교된다.
console.log(true == 1); //true, true가 숫자 1로 변환되어 비교된다.

일치 연산자(Strict Equality Operator)

=== 연산자는 값뿐만 아니라 타입까지 일치해야만 true를 반환한다. ==와 달리 타입 변환이 없기 때문에, 타입이 다르면 무조건 false를 반환한다. 이를 엄격한 비교(strict equality)라고 부른다.

console.log(1 === '1'); //false
console.log(true === 1); //false

사용하는 상황

자바스크립트는 동적 타입 언어이기 때문에 변수의 타입이 실행 중에도 바뀔 수 있다. 이런 특징으로 인해 ==는 타입 변환이 필요한 경우에 유연하게 사용될 수 있지만, 예상하지 못한 결과를 초래할 수 있어 ===가 더 안전하게 사용된다.

=== 명확하고 예측 가능한 결과가 필요할 때 사용, 타입까지 동일한 비교를 하고 싶을 때 사용
== null, undefined처럼 타입이 달라도 비교를 허용하는 경우가 필요할 때 사용
console.log(null == undefined); //true
console.log(null === undefined); //false

결론

위와 같이 ==와 ===의 차이를 이해하면 자바스크립트에서 값 비교를 더욱 정확하게 할 수 있다. ==은 예외사항이 많기 때문에 되도록이면 ===를 사용해 안전한 비교를 수행하고, 특정 상황에서만 ==를 사용하는 것이 좋다.

'Language > JavaScript' 카테고리의 다른 글

[JS]객체(Object) 정의, 호출  (0) 2024.12.24
[JS]배열 관련 함수  (2) 2024.11.25
[JS]함수의 다양한 정의 방법  (0) 2024.11.25
[JS]prompt, console.log, alert, document.write  (1) 2024.11.10
[JS]true==2는 false지만, if(2) {}는 실행되는 이유  (0) 2024.11.09
'Language/JavaScript' 카테고리의 다른 글
  • [JS]배열 관련 함수
  • [JS]함수의 다양한 정의 방법
  • [JS]prompt, console.log, alert, document.write
  • [JS]true==2는 false지만, if(2) {}는 실행되는 이유
yxxjxxeee
yxxjxxeee
  • yxxjxxeee
    공부 일지
    yxxjxxeee
  • 전체
    오늘
    어제
    • study N
      • Framework
        • Spring
      • Language
        • JavaScript
        • C | C++
        • JAVA
        • PHP
      • CS
        • 네트워크
        • 자료구조
        • 데이터베이스
        • 운영체제
      • DBMS
        • MySQL
      • 코딩테스트 N
        • 백준 N
        • 프로그래머스
        • LeetCode
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 쇼핑몰 제작 프로젝트(PHP)
    • github
  • 공지사항

  • 인기 글

  • 최근 글

  • hELLO Designed By 정상우
    Version v4.10.2
yxxjxxeee
[JS]== vs ===
상단으로

티스토리툴바