Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 ==(이중 등호)와 ===(삼중 등호)의 차이점 완벽 정리

자바스크립트에서 두 값이 같은지 비교할 때 사용할 수 있는 방법은 두 가지가 있습니다.

  • 일반 동등 연산자(Regular Equals): == (이중 등호)
  • 엄격 동등 연산자(Strict Equals): === (삼중 등호)

==와 ===의 핵심 차이

  • ==(이중 등호)는 값만 비교하고 자료형(타입)은 무시합니다. 비교 전에 필요하면 암묵적 형 변환(type coercion)을 수행합니다.
  • ===(삼중 등호)는 값과 자료형을 모두 비교하며, 형 변환 없이 엄격하게 판단합니다.

예제로 살펴보기

// true를 반환
5 == "5"
// false를 반환
5 === "5"

위 예제에서 왼쪽 값 5숫자(number) 타입이고, 오른쪽 값 "5"는 따옴표(" ")로 감싸져 있기 때문에 문자열(string) 타입입니다.

두 값 모두 '다섯'이라는 동일한 값을 가지지만, 하나는 숫자형이고 다른 하나는 문자열형입니다. 엄격 동등 연산자 ===는 값과 자료형이 모두 같아야만 true를 반환합니다.

자료형이 같은 경우

반대로 아래 예제들은 양쪽의 값과 자료형이 모두 같으므로 true를 반환합니다.

// true를 반환
5 === 5
// true를 반환
"5" === "5"

개발 팁: 가능하면 ===를 사용하세요

암묵적 형 변환 때문에 ==는 예상치 못한 결과를 만들 수 있습니다. 예를 들어 null == undefined, 0 == "", 0 == false는 모두 true로 평가됩니다. 이런 부작용을 피하기 위해 대부분의 개발자와 코딩 컨벤션(예: ESLint의 eqeqeq 규칙)은 의도하지 않은 버그를 방지하기 위해 === 사용을 권장합니다.