비교

연산자

값에 대해서 어떤 작업을 컴퓨터에게 지시하기 위한 기호인데 우리는 이미 연산자를 사용했다.

대입 연산

'='는 우항의 값인 1을 좌항의 변수 a에 대입하는 '대입 연산자'다.

a = 1

비교 연산자

프로그래밍에서 비교란 주어진 값들이 같은지, 다른지, 큰지, 작은지를 구분하는 것을 의미한다. 이 때 비교 연산자를 사용하는데 비교 연산자의 결과는 true나 false 중의 하나다. true는 비교 결과가 참이라는 의미이고, false는 거짓이라는 뜻이다.

== 동등연산자(equal operator)

동등 연산자(equal operator)로 좌항과 우항을 비교해서 서로 값이 같다면 true 다르다면 false가 된다. '='가 두개인 것을 주의하자. '='가 하나인 것은 대입 연산자로 우항의 값을 좌항의 변수에 대입할 때 사용하는 것으로 의미가 완전히 다르다.

alert(1==2)         //false 다르다
alert(1==1)         //true  같
alert("one"=="two") //false 다르
alert("one"=="one") //true  같

=== 일치연산(strict equal operator)

일치 연산자(strict equal operator)로 === 좌항과 우항이 '정확'하게 같을 때 true 다르면 false가 된다.

alert(1=='1');  //true   
alert(1==='1'); //flase  데이터 타입이 다르기에 false

위의 결과는 이상하다. '==='는 숫자 1과 문자 1을 다르게 인식한다. 반면에 '=='는 양쪽의 값을 같다고 판단한다. 바로 이것이 '정확'의 의미다. 즉 ===는 서로 같은 수를 표현하고 있더라도 데이터 형이 같은 경우에만 같다고 판단하기 때문이다. 결론부터 말하면 == 연산자 대신 === 연산자를 쓰는 것을 강력하게 권한다.

null과 undefined는 값이 없다는 의미의 데이터 형이다. null은 값이 없음을 명시적으로 표시한 것이고, undefined는 그냥 값이 없는 상태라고 생각하자.

alert(null == undefined);      //true
alert(null === undefined);     //false
alert(true == 1);              //true  
   //동등연사자에서는 숫자 1 은 true 나머지는 false
alert(true === 1);             //false 
alert(true == '1');            //true
alert(true === '1');           //false
 
alert(0 === -0);               //true (음수,양수 상관X)
alert(NaN === NaN);            //false

//NaN은 계산할수 없음에 가까워서 false -> 특징적인 거임
//NaN은 0/0과 같은 연산의 결과로 만들어지는 특수한 데이터 형

!=

'!'는 부정을 의미한다. '같다'의 부정은 '같지 않다'이다. 이것을 기호로는 '!='로 표시한다. 아래의 결과는 !=의 결과인데 ==와 정반대의 결과를 보여준다.

alert(1!=2);            //true
alert(1!=1);            //false
alert("one"!="two");    //true
alert("one"!="one");    //false

!==

'!=='는 '!='와 '=='의 관계와 같다. 정확하게 같지 않다는 의미다.

>

좌항이 우항보다 크다면 참, 그렇지 않다면 거짓임을 알려주는 연산자다. '<'는 반대의 의미로 언급은 생략하겠다.

alert(10>20);   //false
alert(10>1);    //true
alert(10>10);   //false

>=

좌항이 우항보다 크거나 같다. '<='는 반대의 의미로 언급은 생략하겠다.

alert(10>=20);      //false
alert(10>=1);       //true
alert(10>=10);      //true

Last updated

Was this helpful?