ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 생활코딩 7강
    Javascript& React study 2018. 3. 31. 03:00
    728x90
    반응형
    SMALL



    생활코딩 7강에서는 비교와 연산자를 배워보았습니다.


    연산자란? 값에 대해서 어떤 작업을 컴퓨터에게 지시하기 위한 기호인데


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


    a는 변수이며 1은 값 그리고 상수라고 한다.(바뀌는 값)


    이러한 연산자를 이항연산자라 한다.



    비교연산자란?


    a b에 대하여

    ==,<,>,<=,>=(비교연산자)를 사용하여 

    true,false의 결과값을 가진다.


    -true는 비교결과가 참이라는 뜻이고 false는 거짓이라는 의미이다

    블린(boolean)이라고 불리는 데이터 형식


    == 동등 연산자(Equals Operator)-좌항과 우항을 비교해서 값이 같다면 true

    다르다면 false가 된다.





    alert(1==2)             //false가 경고창으로 나온 모습을 확인할 수 있다.





    alert(1==1)             //true가 경고창으로 나온 모습을 확인할 수 있다.





    alert("one"=="one")     //true가 경고창으로 나온 모습을 확인할 수 있다.



    alert("one"=="two")     //false가 경고창으로 나온 모습을 확인할 수 있다.


    ==이 두번 들어가는데 a=1과 a==1은 다르다


    a=1은 대입연산자로써 우항의 값을 좌항에 대입하는것이다.


    a==1은 동등연산자로써 좌항과 우항의 값이 같다면 이 전체의 값을 true와 false로 만들어준다.

    (동등 비교 연산자)


     ===은 일치 연산자로 (Strict Equals Operator)좌항과 우항이 정확하게 같을때 

    true가 다르면 false가 된다.





    위 사진에서 숫자 1과 문자 1은 다르다.그래서 false가 나온다.

    === 일치연산자를 쓰게 되면 우항과 좌항의 정보가 같고 데이터의 형식이 정확하게

    일치할때만 true가 나온다.




    하지만 숫자 1과 문자 1 사이에 동등연산자를 붙이면 true가 된다.

    동등연산자 ==는 데이터 타입이 다르다 하더라도 가지고 있는 정보가 동일하다면

    자바스크립트는 같은 값으로 인정한다.(프로그램이 버그를 발생시키기 쉬운 상황을 일으킨다.)


    ++ 결론부터 말하면 == 연산자 대신 === 연산자를 쓰는 것을 강력하게 권한다.-코드를 작성할때 문제가 

    발견하는것이 가장 좋다.






    alert(null == undefined);       //true에서 null과 undefined는 특수한 형식의

    데이터 타입으로 null은 값이 없음을 명시적으로 표시한 것이고, 

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


    var a는 변수 a를 선언하였다라는 뜻이고 이 값을 데이터로 저장하는 것이다.




    만일 alert(a);를 사용하게 되면 undefined가 뜨게 되는데 a라는 변수는 존재하지만

    어떠한 값도 들어있지 않다라는 것을 뜻한다.





    null은 값이 없다(의도해서 값이 없는 상태)는 뜻이고 

    undefined는 값이 정의되어 있지 않다는 뜻이다.




    alert(undefined == null);을 하였을 경우 true가 뜨게 된다.

    (프로그래머가 의도하든 하지 않든 값이 없을 경우 true)





    alert(undefined === null);을 하였을 경우 false가 뜨게 된다.

    (값이 없더라도 데이터 타입이 다르다면 false)



    여기서 true와 false는 데이터 형식을 뜻한다.

    (true와 false)을 boolean이라 한다.

    정수 -1 0 1 2 3.... 이것을 number라 한다.

    "a" "b" "c"...를 문자열 즉 string이라 한다.


    이런것들을 데이터 타입이라 한다.


    number와 String은 많은 정보를 가지고 있지만

    boolean은 단 두가지의 데이터만이 존재한다.(true와 false)



    undefined는 undefined라는 데이터 타입이며

    null은 null이라는 데이터 타입이다.






    경고창에 true라고 치면 true가 뜬다.



    경고창에 true == 1이라고 치면 true가 뜬다.




    경고창에 true == 2이라고 치면 false가 뜬다.


    자바스크립트에서 동등연산자는 숫자 1을 true라고 간주하고 나머지 수를 false라 간주한다.

    만일 일치연산자 ===을 사용했을 경우 false라고 간주한다.


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


    위 코드는 1과 true는 같지 않기 때문에 false라 뜨게 된다.


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


    문자 1과 true는 같다고 간주하여 true로 인식한다.


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


    하지만 일치 연산자를 사용할 경우 false로 인식한다.


    alert(0 === -0);                //true

    0이나 -0은 둘다 값이 0이므로 참이 된다.





    0/0은 성립하지 않는 수이기 때문에 NaN이라 하고 특수한 데이터 형으로 

    숫자가 아니라는 뜻이다.


    alert(NaN === NaN);             //false


    NaN은 계산할 수 없음이므로 두가지는 false라고 인식한다.


    프로그래밍을 할때 ===을 쓰는것을 권장 (==는 예외적인 경우가 많음)



    !=


    '!'는 부정을 의미한다. '같다'의 부정은 '같지 않다'이다. 

    이것을 기호로는 '!='로 표시한다. 

    아래의 결과는 !=의 결과인데 ==와 정반대의 결과를 보여준다.


    alert(1!=2); 


    여기서는 원래 false이지만 부정을 의미하는 !가 있으므로 true이다.


    alert(1!=1);


    여기서는 원래 true이지만 부정을 의미하는 !가 있으므로 false이다.


    !==


    !==는 !=와 ==의 관계와 같으며 정확하게 같지 않다는 의미이다



    >


    좌항이 우항보다 크면 참 아니면 거짓을 알려주는 연산자이다.(<은 반대)


    alert(10>20);   //false


    10이 20보다 작으므로 false


    alert(10>1);    //true


    10이 1보다 크므로 true


    >=


    좌항이 우항보다 크거나 같다는 연산자이다 (<=는 반대)


    alert(10>=20);      //false


    10이 20보다 크거나 같지 않기 때문에 false


    alert(10>=1);       //true


    10은 1과 같지 않지만 크기 때문에 true



    http://dorey.github.io/JavaScript-Equality-Table/ (==과 ===의 차이점)

    728x90
    반응형
    LIST

    'Javascript& React study' 카테고리의 다른 글

    취업반 2주차 수업-tiles 설정 방법  (0) 2018.05.01
    생활코딩 7강 실습  (0) 2018.03.31
    생활코딩 6강 실습  (0) 2018.03.29
    생활코딩 6강  (0) 2018.03.29
    생활코딩 5강 실습  (0) 2018.03.28

    댓글

Designed by Tistory.