반응형
자바스크립트에는 눈으로 보기엔 비슷하지만, 매우 다른 동등 비교연산자가 두개 있다.
바로 == 와 ===이다.
=== 동등 비교연산자
자바스크립트에서 === 연산을 사용할 때, 엄격한 동등성을 비교한다.
엄격한 동등성이란 타입과 값이 둘 다 같아야 한다는 이야기다.
5 === 5
// true
숫자 5 두개를 비교했다. 둘다 숫자 타입이며 5라는 같은 값을 가지고 있어 true가 반환되었다.
55 === "55"
// false
숫자 55와 문자열 55를 비교해보았다. 두 개의 피연산자는 같은 값을 가지고 있지만 다른 타입을 가지고 있다.
즉, ===은 타입과 값이 모두 같아야지만 true를 반환한다.
== 동등 비교연산자
자바스크립트에서 == 연산자를 쓰는 목적은 느슨한 동등 비교를 위함이다.
== 연산자는 강제 형변환을 수행한다.
강제 형변환이란, 동등 연산자로 비교하기 전에 피연산자들을 공통 타입으로 만드는 행위를 말한다.
55 === "55"
// false
55와 "55"는 엄격하게 보면 같은 값을 가지고 있지만 다른 타입이기 때문에 같지 않다.
하지만, 느슨한 동등 비교로 테스트한다면 어떤 결과가 나올까?
55 == "55"
// true
true 값을 얻게 된다. 이런 현상이 일어난 이유는 강제 형변환 때문이다.
자바스크립트가 두 피연산자를 동등한 타입으로 변환 후 값을 비교하기 때문이다.
반응형
'JavaScript' 카테고리의 다른 글
[JavaScript] 일반 함수 vs 화살표 함수 (1) | 2022.09.11 |
---|---|
[JavaScript] 원하는 크기의 2차원 배열 만들기 (1) | 2022.08.11 |
[JavaScript] 암묵적 타입 변환 (1) | 2022.06.19 |
[JavaScript] 자바스크립트의 원시 타입 (1) | 2022.06.18 |
[JavaScript] Destructuring 문법 (0) | 2022.06.13 |