20230713 [JavaScript] 일치 연산자(===)

Daisy🌷·2023년 7월 13일
0

일치 연산자

동등 연산자(equality operator) ==는 0과 false를 구별하지 못한다.

alert( 0 == false ); // true

피연산자가 빈 문자열일 때도 같은 문제가 발생한다.

alert( '' == false ); // true

이런 문제는 동등 연산자 ==가 형이 다른 피연산자를 비교할 때 피연산자를 숫자형으로 바꾸기 때문에 발생한다. 빈 문자열과 false는 숫자형으로 변환되면 0이 된다.
0false를 구별하기 위해서는 일치 연산자(strict equality operator) ===를 사용하면 된다. 일치 연산자를 사용하면 형 변환 없이 값을 비교할 수 있다.
일치 연산자는 엄격한(strict) 동등 연산자이다. 자료형의 동등 여부까지 검사하기 때문에 피연산자 ab의 형이 다를 경우 a===b는 즉시 false를 반환한다.

alert( 0 === false ); // false, 피연산자의 형이 다르기 때문이다.

일치 연산자(===)와 동등 연산자(==)의 가장 큰 차이점은 형변환이었다.

  • 일치 연산자는 형 변환 없이 값을 비교한다.
  • 동등 연산자는 형이 다른 피연산자를 비교할 때 강제 형변환 과정을 통해 피 연산자들을 같은 타입으로 만든 후 값만 비교한다.

== 대신 ===를 사용하자!

동등 연산자는 강제 형 변환을 수행하기에 그것이 프로그래머의 의도를 정확하게 반영하지 않을 수 있다. 따라서 일치 연산자를 사용하고 필요에 따라 직접 형변환 후 비교할 수 있도록 하자.

profile
티스토리로 블로그를 이전했습니다. 😂 구경 오세요! 👉🏻 https://u-ryu-logs.tistory.com

0개의 댓글