JS 불리언

gang_shik·2025년 3월 15일
0

JavaScript

목록 보기
4/23

불리언

  • Boolean 타입은 True, False 2개이고 이를 Flag로 쓰기도 함(On-Off로 구분)
  • 이 때, 형 변환의 경우도 래퍼 객체(Boolean)으로 하면 변환도 가능함
  • 그리고 !, !!를 통해서 Boolean으로 변환가능
  • 논리적인 흐름을 제어할 때, True-False로 구분해서 제어함

논리 연산자(Logical Operator)

  • 2가지 항이 있어야 비교할 수 있음
  • 먼저 OR 연산자(||) 또는 이라고 할 수 있음, 참이 하나라도 나오면 무조건 참이 되는 연산자(하나라도 true면 뒤의 값은 볼 필요도 없음)
  • AND 연산자(&&) 그리고 라고 할 수 있음, 모두 다 참이여야 참이 되는 연산자(그래서 앞서 false가 하나라도 있으면 뒤의 값은 볼 필요도 없음)
  • NOT 연산자(!) 부정이라고 할 수 있음, 기존 값을 뒤집음
  • 예시
const age;
const genderType = 'GIRL';

const isAdult = age > 19
const isGirl = genderType === 'GIRL';

age = 17

if (!isAdult || isGirl) {
  console.log('여학생이다');
}

age = 20;

if (isAdult && isGirl) {
  console.log('나는 성인이다!');
}
  • 아래와 같이도 응용 가능(왜냐면 undefined가 되도 false로 귀결되어서 !! 연산으로 인해 아래와 같이 이름 없음이 나올 수 있음
function getName(firstName, lastName) {
  const fName = firstName || '성 없음';
  const lName = lastName || '이름 없음';

  return '저는 ' + fName + ' ' + lName + '입니다';
}

console.log(getName('kevin', ));

== & === (비교 연산자)

  • 동일, 동등, 일치 연산자라고 불림, equality라고 영어로 말함
  • ==는 느슨한 비교를, ===는 엄격한 비교를 함, 그래서 ===를 쓰는게 좋음
  • 느슨한 비교는 '1' == 1을 하면 형변환을 해서 같다고 처리해버림, 그래서 엄격한 비교를 추천하는 것
  • 그래서 무조건 3개 쓰는걸 권장함

Truthy

  • 원시값이든, 객체값이든 참으로 평가할 떄의 값을 Truthy라고 함
  • 아래의 조건들이 참으로 평가되는 값을 의미함(즉, true처럼 돌아간다는 의미임)
  • 단순히 조건문에만 해당하지 않고, 다양하게 상황에 따라서 적용될 수 있음
  • 이처럼 참으로 평가되는 상황을 Truthy라고 함
if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)

Falsy

  • Falsy는 앞서 말한 Truthy와 비슷하게 거짓으로 평가되는 값을 의미함
  • 아래의 조건들이 거짓으로 평가되는 값을 의미함
if (false) {
  // Not reachable
}

if (null) {
  // Not reachable
}

if (undefined) {
  // Not reachable
}

if (0) {
  // Not reachable
}

if (-0) {
  // Not reachable
}

if (0n) {
  // Not reachable
}

if (NaN) {
  // Not reachable
}

if ("") {
  // Not reachable
}
profile
측정할 수 없으면 관리할 수 없고, 관리할 수 없으면 개선시킬 수도 없다

0개의 댓글