준승박 2021. 8. 16. 17:08

비교

1. 연산자란?
■ 비교
어느쪽이 큰지 판단하는 것

■ 연산자
좌항에 있는 값을 우항에 있는 변수에 대입한다.
a=1; // 이항 연산자, 1를 a에 대입한다.

- 비교 연산자
a == b
a < b
a > b
a >= b
a <= b

조건에 대한 결과는 true(참) 또는 false(거짓)로 나온다.
boolean : true, false

2. ==과 ===
- 동등 연산자(Equal Operator, ==)
좌항과 우항을 비교해서 같다면 true, 다르면 false (데이터 타입이 다르더라도, 값이 같다면)
alert(1==2); // false
alert(1==1); // true
alert("one"=="two"); // false
alert("one"=="one"); // true

[주의]
a=1 과 a==1은 다르다.
a=1 : 대입 / a==1 비교

- 일치 연산자(Strict Equal Operator,===)
엄격한 동등 연산자, 정확하게 같은가를 판단, 데이터 및 데이터 형식도 일치 해야 한다.
alert(1==="1"); // false
alert(1=="1"); // true

데이터 타입이 다른 데이터는 다른 데이터라고 봐야 한다.
동등 연산자 보다는 일치 연산자를 사용 해라

3. ===를 사용하자!
alert(null == undefined);
null : 값이 없다.
undefined : 값이 정의 되지 않았다.

var a;
alert(a); // undefined 출력, 값이 정의 되어 있지 않다.
var a = null;
alert(a); // null 출력, a에 값이 없다.

undefined : 의도 되지 않는 상황
null : 의도 된 상황

alert(null == undefined); // true
alert(null === undefined); // false

true / false는 데이터의 형식이다. Boolean이란 형식
데이터의 형식에 따라 형식이 존대, Boolean/Number/String/undefined/null

동등 연산자는 숫자 1을 true로 간주, 다른 숫자는 false

alert(true == 1); // true
alert(true === 1); // false
alert(true == '1'); // true
alert(true === '1'); // false
alert(0 === -0) // true
alert(NaN === NaN) // 0/0을 하면 성립하지 않는 수가 나옴

===, 같은 의미, 같은 데이터 타입일 경우만 TRUE
동등 연산자 보다는 일치 연산자를 사용할것을 권장 한다.

4. 부정과 부등호
!= 부정을 말한다.
alert(1!=2); // true
alert(1!=1); // false

!== 정확하게 같지 않다.
>, >= 숫자를 비교 할때 사용하기
alert(10>20); // false
alert(10>=20); //false