JavaScript에서 불리언 타입 값 비교하기
이전 예시에서 비교를 위해
연산자 ===를 사용했습니다. 이 경우 우리의 변수는
값과 타입 모두에서 true와
동일한지 비교되었습니다.
이런 비교에는
연산자 ==를 사용할 수도 있습니다. 만약 변수 test에
항상 true 또는 false 중 하나의 값이
들어온다면 아무것도 변하지 않습니다:
let test = true; // 여기에는 true나 false를 씁니다
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
하지만 변수 test에
어떤 값이든 들어갈 수 있다면 모든 것이
훨씬 더 복잡해집니다.
이런 경우, 변수 test에
불리언 값이 아닌 것이 들어오면, 그 값은
먼저 불리언 타입으로 변환된 후에만
비교가 이루어집니다.
예를 들어, 변수 test에
숫자 1이 있다고 가정해봅시다. 이 경우 먼저
논리 타입, 즉 true로 변환됩니다. 그리고 나서 비교가 수행됩니다:
let test = 1;
if (test == true) {
console.log('+++'); // 이것이 실행됩니다
} else {
console.log('---');
}
반면, 예를 들어 숫자 0은
false로 변환됩니다. 결국 우리의 조건문은
'틀림'을 출력할 것입니다:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // 이것이 실행됩니다
}
실제로 이런 비교는 명시적으로 다음과 같이 다시 작성할 수 있습니다:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
기억해내서 적어보세요, 어떤 값들이
논리 타입으로 변환될 때
false가 되는지.
코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
코드를 실행하지 말고, 콘솔에 무엇이 출력될지 결정하세요:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}