-
JavaScript 입문 : Boolean값, 각종 값들의 비교 (문자열의 비교)컴퓨터 알아가기/JavaScript 2021. 11. 1. 19:30728x90반응형
본 글은 제로초 TV, 모던 자바스크립트, JavaScript MDN을 기본으로 하고 있습니다.
1. Boolean 값
이전까지는 자료형을 보면 문자열과 숫자열을 공부해 보있습니다. 3번째로 첫번째 언급했던 불 값 도는 불린 값이라고 불리는 내용에 대해 알라보겠습니다. 이는 참(true)과 거짓(false)으로 구분되는 자료형입니다. 다음과 같이 입력하며 따옴표로 감싸지 않습니다. 왜냐하면 문자열이 아니기 때문이죠. 대문자 소문자 주의하시기 바랍니다.
그럼 이런 불린 값을 언제 사용할까요?
연산에서 참과 거짓을 구분할 때 사용됩니다. 특히 비교연산에 사용됩니다. 아마도 향후 프로그램밍을 하면서 참과 거짓의 논리적 흐름에 맞게 코딩이 되야 되기 때문에 이런 자료형이 나온게 아닌가 막연하게 생각해 봅니다.
예를 들어 다음과 같은 경우 불린 값이 표시되는 군요. 크다 작다를 비교할 때 사용되는 군요.
위 연산을 보면 크거나 작거나 같은 비교시에 참과 거짓의 불린 값을 보여줍니다. 단순하게 계산식을 써서 참이냐 거짓이냐를 물어보는 것은 자바스크립트 언어에서는 문장에러로 나오는군요.
2. 각종 값들의 비교
① 등호 및 부등호
프로그래밍에서는 등호기호를 두번 사용합니다. 다음을 보면 이해가 쉽습니다.
그러면 같지않다를 나타내는 기호는 무엇일까요?
바로 != 입니다.
② NaN은 비교연산에서 전부 false 값
숫자가 아니면서 숫자열인 NaN은 어떤 비교값에서도 false값을 보여줍니다. 아마도 NaN은 비교를 할 수 없기 때문이라고 생각됩니다. (단, != 연산에서는 true를 보여줍니다. 이는 NaN자체의 정의를 보면 같지않다가 참이며 어떤 비교도 할 수 없기에 거짓으로만 나온다고 보면 됩니다.)
③ true와 false 비교
true와 false를 비교해 보도록 하겠습니다. 일단 에러가 나지 않으니 향후 사용처가 있겠죠.
일단 비교가 됩니다. 어떤 책이나 강좌에서는 true를 1로 생각하고 false를 0으로 생각하라는 내용도 있는데 저는 좀 더 깊은 뜻이 있다고 봅니다. 단지 숫자로만 비교를 해야할까요?
우선 이렇게 생각하기로 했습니다. "참이 거짓을 이긴다!"
향후 자바스크립트를 어느정도 이해를 하고 나서 이 문제에 대해 다시한번 판단을 해 보도록 하겠습니다.
④ 문자열 비교
문자열들도 크기를 가지고 있습니다.
예를 들어 'a'보다 'b'큽니다. 이런 경우는 사전에서 뒤에 나와 있는 문자열이 더 크다고 생각하면 됩니다. 영어보다는 한글이 더 크군요. 크기의 순서는 숫자문자열 < 알파벳 < 한글 순으로 기억하면 됩니다. 문자열과 숫자열을 비교하면 어떠한 경우에는 false가 나옵니다.
물론 특수문자도 크기를 가지고 있습니다. 예를 들어 @와 &와 같은 특수문자도 크기를 가지고 있습니다. 비교를 해보면 다음과 같이 나옵니다.
음.. 자판의 순서를 보더라도 규칙을 찾아낼 수가 없군요. 그래서 자바스크립트에서는 각 문자열의 크기를 알 수 있는 명령어가 있습니다. 바로 원하는 문자열에 점을 찍고 charCodeAt( ) 이라는 명령어를 사용하면 문자열의 크기를 나타냅니다.
상기 그림을 보면 각각의 문자열의 크기를 볼 수 있습니다. 재미로 '사자'와 '호랑이'의 크기를 비교해 보니 호랑이가 더 크군요.
⑤ 숫자문자열과 숫자열 비교
숫자문자열과 숫자열 비교시 숫자문자열은 숫자로 바뀝니다. 문자열과 숫자열 비교시 문자열은 NaN을 바뀌면서 NaN의 특성인 비교문에서 false가 된다고 합니다.
위 그림에서 재미 있는 점은 true인 경우든 'false'인 경우든 typeof 로 자료형을 봤을때는 전부 false값이 나오는데 외운다고 해서 외워지는게 아니기 때문에 어떤 규칙을 찾아봐야 겠습니다.
반응형'컴퓨터 알아가기 > JavaScript' 카테고리의 다른 글
JavaScript 입문 : undefined, null, 비교 연산표 (0) 2021.11.05 JavaScript 입문 : 각종 값들의 비교, 자료형의 크기, 논리 연산자, 반대 연산자 (0) 2021.11.03 JavaScript 입문 : 연산자 우선순위, 소수점 계산 (0) 2021.10.29 JavaScript 입문 : prompt(), 제곱근 연산, Infinity (0) 2021.10.27 JavaScript 입문 : 기본기 (숫자열 표시, parseInt, parseFloat, Number) (0) 2021.10.25