컴퓨터는 실제로 0과 1밖에 모른다고 했었죠.. 1과 0은 각각 참(true) 거짓(false)에 대응된다. 자바스크립트에서도 true와 false를 나태나는 boolean이라는 자료현이 있다.
값을 표현할 때는 따옴표로 감싸지 않고 true
와 false
를 입력한다.
true;
>true
false;
>false
type of
를 앞에 붙여보면 콘솔창에 “boolean”이라는 값이 출력된다. 값의 자료형이 boolean이라는 뜻이다.
typeof true;
>"boolean"
이제 나는 참과 거짓을 프로그래밍할 수 있다. 참과 거짓은 논리식의 결과 값으로 주로 사용된다.
//초과
5 > 3;
>true
//미만
5 < 3;
>false
//이상
5 >= 5;
>true
//이하
5 <= 4;
>false
비교 연산자는 초과, 미만, 이상, 이하를 나타내는 연산자가 있다. 그렇지만 이 연산자 말고도 두 값이 같음과 같지 않음을 나타내는 연산자도 있다.
//'==' 프로그래밍 언어로 '같다'라는 의미
5 == 5;
>true
5 == 6;
>false
//'!='같지 않다.
5 != 5;
>false
5 != 6;
>true
값 중에서 NaN은 비교할 때 독특한 성질을 띈다. 바로 NaN끼리 비교할 때 false 값을 가진다…
숫자, 문자열, boolean 값을 통틀어 false가 나오는 유일한 값이다.
NaN == NaN;
>false
NaN은 비교연산자를 쓸 때 false결과를 뱉는다. 다만, !=
연산에서는 true를 출력한다.
true > false;
>true
true는 1이랑 비슷한 값이고 false는 0이랑 비슷한 값이기 때문에 true를 출력하게 됩니다.
'b' > 'a';
>true
b가 a보다 문자번호가 크다. b = 98 a = 97
'ad' > 'ab';
>true
첫 문자인 a가 같으므로 다음 문자를 비교하게 되는데.. d값이 더 크다. d = 100
'ab' > 'a'
>true
a가 같으므로 다음 문자를 비교하게 되는데 이 경우 다음 문자가 존재하는 문자열 값이 더 크다.
*문자의 번호 알아보기
문자의 번호를 알아보려면 charCodeAt
을 사용한다. 찾고자하는 문자열 뒤에 .charCodeAt()
을 붙이면 문자의 번호가 나온다.
'a'.charCodeAt();
>97
이제는 다른 자료형끼리 비교해보자!
문자열과 숫자의 크기를 비교해보도록하자.
'3' < 5;
>true
빼기 연산자 때처럼 다른 자료형이 모두 숫자로 형 변환된 후 비교하게 된다. 따라서 문자열 3은 숫자 3이되어 5보다 작다는 것이 성립한다.
'abc' < 5;
>false
이 경우에 문자열 abc를 숫자로 바꾸면 NaN이 된다. NaN과 비교는 false이므로 결과 값이 false가 된다.
boolean 값도 비교 연산을 할 때는 숫자로 형 변환된다.
'0' < true;
>true
문자열 0도 숫자 0으로 형 변환되고, true도 숫자 1로 형 변환된다. 따라서 결과는 true다.
'1' == 1;
>true
1 == true;
>true
1 == '1'
>true
자료형이 다른 경우에는 형 변환을 한 후 비교하기 때문에 위에서 모두 true
로 출력된다. 그래서 자료형까지 같은지 비교하는 연산자도 따로 있다. 바로 ===
다. 값을 비교할 때 뿐만 아니라 자료형까지도 같은지 비교한다.
'1' === 1;
>false
1 === true;
>false
1 === '1'
>false
===
은 자료형까지 같은지 비교해주기 때문에 모두 false
로 출력되었다.
1 != '1'
>false
//숫자형과 문자형은 같지 않은 것이 true다!
1 !== '1'
>true