[JavaScript] 6. Boolean 그리고 값들의 비교

Eden·2022년 9월 11일
0

Javascript

목록 보기
24/33
post-thumbnail

컴퓨터는 실제로 0과 1밖에 모른다고 했었죠.. 1과 0은 각각 참(true) 거짓(false)에 대응된다. 자바스크립트에서도 true와 false를 나태나는 boolean이라는 자료현이 있다.

boolean값 표현하기

값을 표현할 때는 따옴표로 감싸지 않고 truefalse 를 입력한다.

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은 비교할 때 독특한 성질을 띈다. 바로 NaN끼리 비교할 때 false 값을 가진다…

숫자, 문자열, boolean 값을 통틀어 false가 나오는 유일한 값이다.

NaN == NaN;
>false

NaN은 비교연산자를 쓸 때 false결과를 뱉는다. 다만, != 연산에서는 true를 출력한다.

이제 boolean값 끼리 비교해본다면,,

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
profile
one part.

0개의 댓글