JavaScript에서 불리언 타입 값 비교하기

이전 예시에서 비교를 위해 연산자 ===를 사용했습니다. 이 경우 우리의 변수는 값과 타입 모두에서 true와 동일한지 비교되었습니다.

이런 비교에는 연산자 ==를 사용할 수도 있습니다. 만약 변수 test에 항상 true 또는 false 중 하나의 값이 들어온다면 아무것도 변하지 않습니다:

javascriptlet test = true; // 여기에는 true나 false를 씁니다

if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}

하지만 변수 test에 어떤 값이든 들어갈 수 있다면 모든 것이 훨씬 더 복잡해집니다.

이런 경우, 변수 test에 불리언 값이 아닌 것이 들어오면, 그 값은 먼저 불리언 타입으로 변환된 후에만 비교가 이루어집니다.

예를 들어, 변수 test에 숫자 1이 있다고 가정해봅시다. 이 경우 먼저 논리 타입, 즉 true로 변환됩니다. 그리고 나서 비교가 수행됩니다:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // 이것이 실행됩니다
} else {
  console.log('---');
}

반면, 예를 들어 숫자 0은 false로 변환됩니다. 결국 우리의 조건문은 '틀림'을 출력할 것입니다:

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // 이것이 실행됩니다
}

실제로 이런 비교는 명시적으로 다음과 같이 다시 작성할 수 있습니다:

javascriptlet test = 1;

if (Boolean(test) == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

기억해내서 적어보세요, 어떤 값들이 논리 타입으로 변환될 때 false가 되는지.

Задание 2

코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:

javascriptlet test = 1;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 3

코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:

javascriptlet test = 0;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 4

코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:

javascriptlet test = 1;
    
if (test == false) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 5

코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:

javascriptlet test = 1;
    
if (test != true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 6

코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:

javascriptlet test = '';
    
if (test == false) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 7

코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:

javascriptlet test;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 8

코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:

javascriptlet test = 3 * 'a';
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}