JS 8 연산자
연산자
demo4.html
연산자: 어떤 작업을 컴퓨터에게 지시하기 위한 기호
a = 1;
//a:변수 / =:대입연산자 / 1: 상수
비교연산자
비교: 주어진 값들이 같은지, 다른지, 큰지, 작은지 등 구분하는 것
결과는 true, false (=boolean, bool)
- boolean: 조지 불의 이름에서 따온 자료형, 대수 논리, 네트워크, 함수 등
동등 연산자 “==” (equal operator)
:좌항과 우항을 비교해서 서로 값이 같다면 true / false
alert(1 == 2); //false
alert(1 == 1); //true
alert("one" == "two"); //false
alert("one" == "one"); //true
일치 연산자 “===” (strict equal operator)
:좌항 우항이 ‘정확하게’ 같을 때 true / false
//숫자1과 문자'1'은 데이터형태가 다름
alert(1 == "1"); //ture
//===는 엄격하게 비교해서 데이터형식(datatype)까지 같아야함
alert(1 === "1"); //false
- 결론:
‘==’대신 ‘===’를 쓰는것을 강력하게 권함
프로그램이 커지는 과정에서 비슷하면 같은 것으로
간주하는 형식의 연산은 버그를 발생기키기 쉬움
- null: ‘값이 없음’을 명시적으로 표현
:의도적으로 값이 없는 상태를 부여함 -
undefined: 값이 정의되지 않음
:그냥 값이 없음(의도x)var a; alert(a); //undefined var a = null; alert(a); //null //null: 독일어 0 alert(undefined == null); //true alert(undefined === null); //false //값이 없는 것은 같지만, datatyped은 '정의되고/되지않음'으로 다름
- Boolean: true / false 라는 것은 datatype의 하나임
- Number: -1, 0, 1, 2
- string: ‘a’, ‘b’, ‘c’
- boolean(bool): true, false
- null, undefined도 다 각각의 타입
//JS에서는: 숫자 1 을 true로 간주함 / 1 이외의 수는 false로 간주함
alert(true); //ture
alert(true == 1); //true
alert(true == 2); //false
alert(true == 3); //false
//but === 로 데이터 형식을 비교해보면
alert(true === 1); //false
//문자 '1'과 true(1)는 역시 같지만
alert(true == "1"); //true
//문자 '1'과 true의 datatype은 다르다
alert(true === "1"); //false
//0은 -가 붙어도 0이잖아? true
alert(0 === -0); //true
//0을 0으로 나누는 계산은 성립하지 않음. 이는 NaN이라는 datatype을 가짐
alert(0 / 0); //NaN (성립하지않음)
alert(NaN === NaN); //false
//둘다 NaN일지라도 false. 특징적이므로 알아둘 것(볼일은 잘 없음)
//NaN: Not a number
부정
!=: ==의 부정형 / ‘같다’의 부정은 ‘같지 않다’
==과 결과가 역전
alert(1 != 2); //true
alert(1 != 1); //false
alert("one" != "two"); //true
alert("one" != "one"); //false
!==: ===의 부정형
”>” : 좌항이 우항보다 크다면 true
“<” : 우상이 좌항보다 크다면 true
“>=”: 좌항이 우항보다 크거나 같다면 true
“<=”: 우항이 좌항보다 크거나 같다면 true
잘 숙지하고 넘어가라
오늘 배운 비교연산자는 다음에 배울 조건문의 전초전임