26. 동등, 부등, 일치, 불일치 연산자
== 연산자
- 동등 연산자
- 왼쪽과 오른쪽 값이 같으면 true, 다르면 false
값 타입은 비교하지 않음
1과 “1”이 같음console.log(1 == "1"); // true
- 값 타입이 다르면,
즉, “문자:숫자”, “숫자:문자”일 때
문자 타입을 숫자 타입으로 변환하여 비교 - 따라서 모두 1이므로 true 반환
var value; console.log(value == undefined); // true
- 양쪽이 모두 undefined이므로 true
var value; console.log(value == null); // true
- undefined와 null을 비교하면 true
- undefined와 null은 값입니다.
값이 다른데도 true가 되므로 주의~!!!!
- 값 타입이 다르면,
undefined는 값이 undefined이고 타입은 Undefined입니다.
null은 값이 null이고 타입은 Object입니다.
그런데 값만 비교하므로 true가 반환되는 것입니다.
!= 연산자
- 부등 연산자
- 왼쪽과 오른쪽 값이 다르면 true, 같으면 false
- a != b와 !(a == b)가 같음
=== 연산자
- 일치 연산자
- 왼쪽과 오른쪽의 값과 타입이 모두 같으면 true
값 또는 타입이 다르면 false 1 === 1, true
1 === “1”, falseconsole.log(1 === "1"); // false
- 값은 같지만 타입이 다르므로 false
var value; console.log(value == null); // true console.log(value === null); // false
- var 로 변수를 선언만 하면 변수값은 undefined
- undefined 와 null 은 값입니다.
- == (동등 연산자)로 비교하면 true
=== (일치 연산자)로 비교하면 타입이 다르므로 false - 매우 중요한 것!!! 꼭 기억하자!!!!!
비교할 땐 보통
===
(일치 연산자)를 사용합니다.
값과 타입을 모두 비교하기 때문에 안전하게 비교를 할 수 있습니다.
그런데 특수한 경우라===
(일치 연산자)를 사용할 수 없을 때, 그때==
(동등 연산자)를 사용합니다.정리하자면 우선 먼저
===
로 비교하고 그 다음에 상황에 맞춰==
를 사용해야한다는 것입니다.
이렇게 해야지==
의 문제에서 벗어날 수 있습니다.
!== 연산자
- 불일치 연산자
- 값 또는 타입이 다르면 true
true 가 아니면 false