오늘은 위 내용에 대해 정리해보는 시간을 가져보도록 하자! 오늘도 열공!!🔥🔥🔥
== , === 값을 비교하기 위해 자주 사용되는 두 비교연산자에 대해 알아보자
10 == 10 // true
10 === 10 // true
10 == '10' // true
10 === '10' // false
위 간략한 예시처럼 두 연산자 모두 값이 일치하면 true를 반환하며 일치하지 않을 시 false를 반환한다는 공통점을 갖고 있다.
그렇다면 어떠한 차이점이 존재하는지 알아보자
== 연산자는 두 피연산자의 값의 타입이 다를 경우 자동으로 일부 피연산자의 타입을 변환 후 값을 비교한다.
그러므로 숫자형 10과 문자형 10을 비교 시 true로 반환 되는것을 확인 할 수 있다.
하지만 === 연산자는 타입을 변환하지 않으므로 == 연산자에 비해 비교하는 방식이 엄격합니다.
즉 피연산자의 타입과 값이 모두 일치해야만 true를 반환합니다.
== 연산자는 값만 일치 한다면 true를 반환 느슨한 비교 연산자
=== 연산자는 값과 타입 모두 일치해야만 true를 반환 엄격한 비교 연산자
간단하게 ==, === 두 연산자의 차이점을 알아보았다 특이점에 대해서도 간략히 알아보도록 하자
/* == 연산자는 피연산자중에 boolean 값이 존재 시
true는 1의 값으로 변환 false는 0의 값으로 변환 후 값을 비교한다 */
true == 1 // true
true == '1' // true
true == 'true' // false
false == 0 // true
/*null 과 undefined는 엄연히 다른 값이지만 == 연산자는 true를 반환한다*/
null == undefined // true
/* === 연산자는 타입과 값 모두 일치해야만 true 반환*/
true === 1 // false
false === 0 // false
/* == 연산자와 달리 엄격한 === 연산자는 null과 undefined 비교시 false 반환*/
null === undefined // false
/* NaN 값은 자기 자신을 포함해 어떠한 값이랑 비교해도 일치하지 않는다
비교 연산자 사용시 NaN 값에 주의하자*/
NaN === NaN // false
자주 사용하는 비교 연산자인 만큼 차이점과 특이점에대해 꼭 알고 사용하자!