본문 바로가기

Coding Language/JavaScript

[JavaScript] 동등 연산자, 일치 연산자의 차이점

[해당 포스트는 개인적으로 공부를 하고 차후에 참고용으로 하고자 작성한 것입니다.
따라서 잘못된 부분이나 부족한 부분이 있을 수 있기에 참고하시기 바랍니다.]

JavaScript에선 값이 일치하는지에 대해 비교하는 일치 연산자 중 동등 연산자, 일치 연산자가 존재한다.

 

  • == (동등 연산자) : 비교 대상 값의 자료형이 서로 다르면 강제로 Type을 바꾼 뒤에 비교를 한다.
  • === (일치 연산자) : 값의 내용을 비교하며, 동시에 자료형까지 일치하는지 비교한다.

일치 연산자가 동등 연산자보다 엄격하다고 볼 수 있다. 비교 값뿐만 아니라, Type까지 확인을 하기 때문에 실제적으로 일치하는 값들은 줄어들게 된다. 그러나 대부분 JavaScript를 사용하는 사람들이 동등 연산자보다 일치 연사자를 이용하라고 한다. 큰 프로젝트에서 값의 일치 여부 때문에 버그나, 에러가 발생할 가능성이 존재하기 때문이라 한다.

 

동등 연산자와 일치 연산자의 처리 속도는 크게 차이가 없다고 한다!
처리 속도면에서 걱정은 하지 말고 사용하도록 하자.

 

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

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

 

1. 첫 번째 결과는 false로 반환한다. false 자체는 내장된 값이므로 문자인 'false'랑 같을 수 없다.

2. 두 번째 결과는 true를 반환한다.

3. 세 번째 결과는 false를 반환한다. 둘이 값은 같을 수 있으나, Type이 다르기 때문이다.

4. 네 번째 결과는 true를 반환한다. 둘이 같은 1이기 때문이다.

5. 다섯 번째 결과는 true를 반환한다. 1을 String으로 형을 바꾸면 같은 모양이 된다.

6. 여섯 번째 결과는 false를 반환한다. Number와 String은 Type이 다르기 때문이다.

7. 일곱 번째 결과는 true를 반환한다. 값이 같을 뿐만 아니라, Type 또한 같기 때문이다.