본문 바로가기
TIL

자바스크립트 == vs === (22.10.16 TIL)

by winteringg 2022. 11. 28.
22.10.15 카카오톡 송수신 장애로 인해 티스토리로 접근이 불가하여 노션에 백업해놓았던 TIL

 

자바만 사용해 본 나에게 매우 낯설게 다가왔던 triple equal 연산자 (===). single equal(=) 과 double equal(==) 만 사용해 봤기 때문에 (===) 이 연산자는 살짝 장난감 같이 느껴진다.

일단 두 연산자의 차이점은 ‘==’ 은 숫자와 숫자 리터럴을 비교했을 때 (예를 들어 1 == ‘1’) ‘==’ 은 그걸 true 라고 판단하지만, ‘===’ 은 값뿐만 아니라 타입 일치까지 확인하기 때문에 false 라고 판단한다.

  • ‘==’ → 두 피연산자의 ‘값’이 다른지 비교 (동등 여부)
  • ‘===’ → 두 피연산자가 ‘identical’ 한지 비교 (동일 여부)

자바스크립트는 엄격한 비교와 유형 비교를 모두 지원하므로, 어떤 연산자가 어떤 비교조건에 사용되는 지가 중요하다.

// false
1 === '1'

//true
1 === 1

//true
1 == '1'

//true
1 == 1

//false (값이 다르지 않으므로 두 값이 같다고 판단)
2 != '2'

//true (두 피연산자의 유형이 다르기 때문에 다르다고 판단)
2 !== '2'

결론은 두 변수를 비교하거나 할 때 동일성을 판단하고 싶으면 ‘===’ 연산자를 사용해야 한다. 당연한 거지만 triple equal 에서 not 을 비교할 때도 ‘!==’ 이렇게 쓰는데, 이것도 사실 장난감 같이 생겨서 잘 적응이 안된다. 이번주 안에 적응해 보는 것으로~ㅋㅋㅋㅋ반가워 자스야 잘 지내보자!!!

댓글