불리언 자료형[boolean]과 연산자

DOYOUNG·2023년 5월 15일
0

javascript

목록 보기
5/17
post-thumbnail

불리언(Boolean) 자료형

true, false로 구분됨

let a = 1 === 2;
let b = 'abc' !== 'def'
let c = a !== b;
let d = typeof a === typeof b === true;

console.log(a, typeof a); // false, boolean
console.log(b, typeof b); // true, boolean
console.log(c, typeof c); // true, boolean
console.log(d, typeof d); // true, boolean

불리언 연산자

1) 부정 연산자

console.log(
  true, !true, false, !false
);

console.log(
  true, !true, !!true, !!!true
);

console.log(
  false, !false, !!false, !!!false
);

!를 붙이면 상태가 반전된다.

2) AND / OR 연산자

  • && : AND - 양쪽 모두 true 일 때, true 반환. (한 쪽이라도 false면 false 반환함)
    👉 앞의 것이 false면 뒤의 것을 평가할 필요 없이 false
console.log(
  true && true, // true
  true && false, // false
  false && true, // false
  false && false, // false
);
  • || : OR - 한쪽만 true 여도, true 반환. (양쪽 모두 false일 경우만 false 반환함)
    👉 앞의 것이 true면 뒤의 것을 평가할 필요 없이 true
console.log(
  true || true, // true
  true || false, // true
  false || true, // true
  false || false, // false
);

📌 드 모르간의 법칙

let a = true;
// a = false;
let b = true;
// b = false;

console.log(
  !(a && b) === (!a || !b),
  !(a || b) === (!a && !b)
); // 💡 항상 true

3) 삼항 연산자

(조건식) ? '참입니다' : '거짓입니다'
👉 조건식이 true면 앞 반환, false면 뒤 반환

let x = true;
// x = false;

let y = x ? '참입니다.' : '거짓입니다.';
console.log(y); // 참입니다

중첩 삼항연산자 (3개 조건 비교)

let score = 100;

score >= 90
  ? console.log("A+")
  : score >= 50
  ? console.log("B+")
  : console.log("F");

위와 같이 3가지 이상의 조건을 가진 조건문도 삼항 연산자로 쓸 수 있지만 이런 경우에는 if 조건문을 사용하는 것이 깔끔하다.

if (score >= 90) {
  console.log("A+");
} else if (score >= 50) {
  console.log("B+");
} else {
  console.log("F");
}

Truthy vs Falsy

01) Truthy

console.log(
  1.23 ? true : false,
  -999 ? true: false,
  '0' ? true : false,
  ' ' ? true : false,
  Infinity ? true : false,
  -Infinity ? true : false,
  {} ? true : false,
  [] ? true : false,
);

소숫점, 음수, '0'(문자), '스페이스(공백)', infinity, { }, [ ] 등은 삼항연산자에 들어갔을 경우 Truthy.

02) Falsy

console.log(
  0 ? true : false,
  -0 ? true : false,
  '' ? true : false,
  null ? true : false,
  undefined ? true : false,
  NaN ? true : false,
);

0(숫자), ''(공백 없는 문자), null, undefined, NaN 등은 삼항연산자에 들어갔을 경우 Falsy.

예제 코드

const getName = (person) => {
  if (!person) {
    // falsr NOT => True
    return "객체가 아닙니다";
  }
  return person.name;
};

let person;
const name = getName(person);
console.log(name);

위와 같이 truthy falsy 조건을 활용할 수 있다.

기타 연산자들

쉼표 연산자

let x = 1, y = 2, z = 3;
console.log(x, y, z);

// 마지막으로 실행한 것 반환
console.log(
  (++x, y += x, z *= y)
); // 12

소괄호 안에 쉼표를 사용한 쉼표 연산자 같은 경우 왼쪽부터 차례로 실행하여 가장 마지막 값을 반환함.

?? : null 병합 연산자

let a = false;
let b = 0;
let c = '';
let d = null;
let e;

console.log(
  a ?? '기본값', // false
  b ?? '기본값', // 0
  c ?? '기본값', // ''
  d ?? '기본값', // '기본값'
  e ?? '기본값', // '기본값'
);

a ?? '기본값'
👉 a가 null 혹은 undefined 일때만 '기본값' 반환. 아니면 a 그대로 반환함.

profile
프론트엔드 개발자 첫걸음

0개의 댓글