🦎 JavaScript

[JS] Blooleans(불리언)

하나둘세현 2023. 1. 19. 00:07
728x90

Booleans(불리언)

Booleans(불리언) 두개의 값이 있다. true false이다.

true와 false는 소문자여야한다. 불리언은 예/아니오나 참/거짓 값에 사용된다. 

JS에는 5가지의 거짓 값이 있다. 0, ' ' (빈 문자열), undefined(정의되지 않음), null, NaN(숫자가 아닌 것)

fasle는 이미 거짓이어서 거짓 목록에 포함하지 않았다. Booleans로 변환하려면 flase로 바뀐다. 처음에는 당연히 거짓이 아니었다. 그것들은 다시 말해 Boleans로 변경할 때만 false로 된다. 

다른 모든 것은 truly value이다. Booleans으로 변경할 때 0이 아닌 모든 숫자 또는 0이 아닌 모든 문자열, 빈 문자열은 true가 된다. 

숫자, 문자열과  마찬가지로 부울 함수를 사용할 수 있다.

console.log(Boolean(0));
console.log(Boolean(undefined));
console.log(Boolean("Jonas"));
console.log(Boolean({}));

0과 undefined는 false 값을 나타낸다. 문자열 Jonas와 빈 문자열은 true 값을 나타낸다.

console.log(Boolean({}));
console.log(Boolean(""));

빈 문자열에서 ' '는 fasle가 된다! 

타입 강제 변환에서는 Blooean은 명시적이지 않고 항상 암시적이다. JS는 자동으로 뒤에서 수행한다. 

 

정확히 언제 JS에서 타입 강제 변환을 수행하는가?

두가지의 경우가 있다.

  1. 논리 연산자(logical operators)
  2. 논리적 컨텍스트(logical context): 예를 들면, if else 문의 조건

참/ 거짓은 변수가 실제로 정의되어 있는지를 확인 할 수 있다. 그 외 참/거짓으로 다양한 것을 할 수 있다.


const money = 90;
if (money) {
  console.log("Don't spend it all");
} else {
  console.log("You shoud get a job");
}

Don't spend it all 문장이 출력되었다. 왜? true의 조건을 살펴보면 0이 아닌 모든 문자열! 즉 money는 90을 의미하기 때문이다.  (참고로 Boolean으로 자동변환되어 값이 출력되었다.)


let height;
if (height) {
  console.log("YAY! Height is defined");
} else {
  console.log("Height is UNDEFINED");
}

false 값이 나왔다. 왜? height 변수는 값을 할당 안받았기 때문이다. 즉 false의 조건에서 undefined에속한다.  (참고로 Boolean으로 자동변환되어 값이 출력되었다.)


게임을 할때 게임을 이겼는지 졌는지를 표현할 수 있다. 

참에서 거짓, 거짓에서 참으로 변경 가능하다.  

 

 

 

 

 

 


JS에서 type을 변경하는 변수를 가질 수 있다. 숫자 변수를 만들었다고 숫자만 저장해야하는 건 아니다. 불리언으로 저장 가능하다.

(다른 프로그래밍 언어에서는 변수를 만들 때 저장하는 값이 숫자라면 그 변수는 오직 숫자만 저장할 수 있다. 만일 값이 불리언이면 그 변수는 불리언 값만 저장 가능하다.)

728x90

'🦎 JavaScript' 카테고리의 다른 글

[JS] 다른 연산자의 우선순위  (0) 2023.01.22
[JS] 기본 연산자  (0) 2023.01.21
[JS] Variables (변수) | let | const | var  (0) 2023.01.12
[JS] Primitive Types  (0) 2023.01.11
[JS] JavaScript  (0) 2023.01.10