본문으로 바로가기

비교 


1.연간자 

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

 아래 예제 중에서 '='는 우항의 값인 1을 좌항의 변수 a에 대입하는 '대입 연산자'다. 본 수업은 연산자가 무엇인가에 대한 이해를 돕기 위한 것일 뿐 외울 필요는 없다. 차차로 알게 된다.


a=1// a변 수 에 1을 저장한다 '='는 대입 연산 외항에 있는 것을 우항 으로 해서 연산(이학 연산자)


2.비교연산자(== 과  ==)


프로그래밍에서 비교란 주어진 값들이 같은지, 다른지, 큰지, 작은지를 구분하는 것을 의미한다. 

이 때 비교 연산자를 사용하는데 비교 연산자의 결과는 true나 false 중의 하나다. true는 비교 결과가 참이라는 의미이고, 

false는 거짓이라는 뜻이다. true와 false는 블린(boolean)이라고 불리는 데이터 형식인데 이것은 조건문에서 비중있게 다룰 것이다.

 아래는 주요한 비교 연산자들의 종류와 그에 따른 예제들이다.

==

<

>

<

=

>

=

이걸로해서 boolean탑입인 ture falce로 결과 값을  확인한다 

==(동등연산자 equal operator)

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

숫자만 비교하는 것이아닌라  다른 데이터 또하나 비교가가능하다 

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

clear(); 하면 console창이 깨끗해진다 


===

일치 연산자로 === 좌항과 우항이 '정확'하게 같을 때 true 다르면 false가 된다. 여기서 정확하다는 말의 의미에 집중하자. 아래 예를보자.

==는equal operator

===는 strict equal operator (엄격한 동등 연산자 )

alert(1=='1'); //true
alert(1==='1'); //false

일치연산 자를 사용하게 되면 좌항과 우항에 정보가 같을 뿐만 아니라  

데이 터의 형식 또 한 같아야 true를 반환한다  

하지만 동등 연산자는 좌항과 우항의 값의  타입이 달라도

실질적으로 갖고 있는 정보가 동일하다면 , java script는 같은 값으로 인정해주는 연산자를제공해준다 

이러한 기능이 잇어 서 좋은 것만은 아니다 비슷한 것을 같은 것으로 인정해주는 연산이 있으므로 해서 그 프로그램이 버그를 발생시키기 쉬운 상황을 만든다 

프로그램이 작을 때는 만든 사람이 구조나 동작 을 모두 이해하고 있어 편리 하지만 큰 프로그램을 만들때는  작은 부분에 문제만 생겨도 프로그램 전체가 문제가 생길 수 있고 많은 사람에게 영향을 미치는 프로그램이라면 (중요한 역할 을 하는 프로그램 )

심각한 일을 초래 할 수 있다 .그럼므로 비슷하면 같은 것으로 처리한는 것은 좋은 것만은 아니다  그래서 이제 알았으니 '==' 보단 '===' 이것을 권유한다

3.===를 사용하자 

null은 값이 없다는 것이고  

nudefined는 값이 정의 되지 않았다 는 뜻

undefined

var a;

alert(a);


null

var a=null;

alert(a);

이 두가지 의미는 비슷하지만 미세하고 중요한  차이가 있다  

undefined= 의도하지 않음그냥 값이 없다 는 뜻

null=값이 없지만  프로그램어가 의도적으로 값이 없는 상태를 그곳에 부여한것 


alert(undefined==null);// true

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

 값이 없는 것은 같지만  의도 한것과 의도 하지 않은 것을 엄격하게 보면 다르다는 것을 알 수 있습니다

null과 undefined는 값이 없다는 의미의 데이터 형이다. null은 값이 없음을 명시적으로 표시한 것이고, 

    undefined는 그냥 값이 없는 상태라고 생각하자.

    java script에서 동등(==) 연산자는 1을 true로 해석하고 1을 제외한 모든 숫자를 false로 해석한다   

    alert(true)// true

    alert(true==1)// true

    alert(true==2)// false

    alert(true==3)// false

    alert(true===1)// false  다르다고 

    alert(true=='1')// true

    alert(true==='1')// false 도 한 다르다고 해석한다

    alert(0===-0)// true  왜냐면 0은 그냥 0이기 때문에 

    0/0//NaN 계산할 수 없음 /숫자가아님 

    alert(NaN===NaN);// 같은 것이라 할지라도 다르다고 나온다  

    NaN은 0/0과 같은 연산의 결과로 만들어지는 특수한 데이터 형인데 숫자가 아니라는 뜻이다.

    ==과 ===의 차이점


    == 같지 않음에도 불구 하고 같다고 표현하는 경우가있습니다 

    === 같은 것만 같다 고 보여줍니다

    초록부분이 true를 반환하는 것이 참고하면  좋겠습니다  


    4.부정과 부등호 

    !=

    '!'는 부정을 의미한다. '같다'의 부정은 '같지 않다'이다. 이것을 기호로는 '!='로 표시한다. 

     밑을 보면  !=의 결과인데 ==과 정반대의 결과를 보여준다.

    alert(1!=1);

    alert(1!=2);

    alert("one"!="two");

    alert("one"!="one");

    !==

    '!=='는 '!='와 '=='의 관계와 같다. 정확하게 같지 않다는 의미다. (equal  중요하다)

    >

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

    alert(10>20);//false

    alert(10>1);//true

    alert(10>10);//false

    >=

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

    alert(10>=20);//false

    alert(10>=1);//true

    alert(10>=10);//true