-
생활코딩 7강Javascript& React study 2018. 3. 31. 03:00728x90반응형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