JavaScript
불리언
마라랑랑
2022. 5. 23. 21:13
불리언
불리언(boolean)은 참(true)과 거짓(false)을 나타내는 데 사용된다.
ON: True
OFF: False
두가지 타입으로 나뉨
console.log(Boolean('STRING')); true
console.log(!!'STRING'); true
console.log(!!0); false
console.log(!!1); true
객체를 Boolean으로 감싸서 true 나 false 값을 나타냄
! 부정연산자 ← true 값을 false값으로 나타냄
!! 부정연산자를 두 번 사용하여 boolean으로 사용할 수 있다.
논리연산자
Logical Operator (논리 연산자)
* OR - || (또는)
* AND - && (그리고)
* NOT - ! (부정)
console.log(true || true); true
console.log(false || true); true
console.log(false || false); false
논리식 중에서 하나라도 참이면 참을 반환함 (OR 연산)
console.log(true && true); true
console.log(false && true); false
console.log(false && false); false
논리식이 모두 참이면 참을 반환함. (AND 연산)
const age = 20;
const genderType = 'GIRL';
const isAdult = age > 19;
const isGirl = genderType === 'GIRL';
if (isAdult === false) {
console.log('나는 성인이 아니다');
}
if (isAdult && isGirl) {
console.log('나는 성인이다!'); 나는 성인이다!
}
if (!isAdult || isGirl) {
console.log('나는 여학생이다'); 나는 여학생이다
}
if 조건문에서의 논리연산자 사용
function getName(firstName, lastName) {
const fName = firstName || '성 없음';
const lName = lastName || '이름 없음';
console.log(!!undefined || !!'이름 없음'); true
return '저는 ' + fName + ' ' + lName + '입니다';
}
console.log(getName('김')); 저는 김 이름 없음입니다
(!!undefined) 가 false를 나타내고 (!!'이름 없음') 가 true값을 나타내므로 OR연산을 통하여 참인 문자열인 이름없음을 뽑아 낼 수 있다.
== vs === (비교 연산자)
== → 느슨한 비교
=== → 엄격한 비교
console.log('1' == 1, '1' === 1); true false
console.log(0 == [], 0 === []); true false
console.log(0 == '', 0 === ''); true false
console.log('' == [], '' === []); true false
동등 연산자는 두개를 사용했을때와 세개를 사용했을때 다른값이 나오기 때문에 주로 세개를 사용하기를 권장한다.
Truthy
참 같은 값
불리언 문맥에서 true로 평가되는 값이다.
if (true) {
console.log('참 입니다'); 참 입니다
}
if ({}) {
console.log('참 입니다'); 참 입니다
}
if ([]) {
console.log('참 입니다'); 참 입니다
}
if (42) {
console.log('참 입니다'); 참 입니다
}
if ('0') {
console.log('참 입니다'); 참 입니다
}
if ('false') {
console.log('참 입니다'); 참 입니다
}
if (new Date()) {
console.log('참 입니다'); 참 입니다
}
if (-42) {
console.log('참 입니다'); 참 입니다
}
if (12n) {
console.log('참 입니다'); 참 입니다
}
if (3.14) {
console.log('참 입니다'); 참 입니다
}
if (-3.14) {
console.log('참 입니다'); 참 입니다
}
if (Boolean(Infinity)) {
console.log('참 입니다'); 참 입니다
}
if (!!-Infinity) {
console.log('참 입니다'); 참 입니다
}
console.log([] && 'Hello'); Hello
위와 같이 다양한 값들이 Boolean으로 True값을 나타낸다
Falsy
거짓 같은 값
불리언 문맥에서 false로 평가되는 값이다.
const emptyString = '';
if (emptyString === '') {
console.log('문자열이 비어있음'); 문자열이 비어있음
}
if (!emptyString.length) {
console.log('문자열이 비어있음'); undefined
}
if (!emptyString) {
console.log('문자열이 비어있음'); 문자열이 비어있음
}
' ' 와 0 이 false 취급되었다.
if (false) {
} else {
// 실행
}
if (null) {
} else {
// 실행
}
if (undefined) {
} else {
// 실행
}
if (0) {
} else {
// 실행
}
if (-0) {
} else {
// 실행
}
if (0n) {
} else {
// 실행
}
if (NaN) {
} else {
// 실행
}
if ('') {
} else {
// 실행
}
전부 false 값으로 else 구문에서 실행된다.