문법 · JS · beginner

조건과 논리: if, else, &&, ||, 삼항

배타적 조건 순서, truthy/falsy, 단락 평가.

배우기 · JavaScript 문법 · 14분 · 2/10 · javascript · 조건

이 트랙 목차 (10)
  1. 1. 값·변수·타입: let, const, Number, String
  2. 2. 조건과 논리: if, else, &&, ||, 삼항
  3. 3. 반복: for, while, for...of, 배열 메서드
  4. 4. 함수: 선언, 화살표, 스코프, 순수 함수
  5. 5. 배열과 문자열 다루기
  6. 6. 객체·Map·Set
  7. 7. 비동기 맛보기 (문제 범위 밖이지만)
  8. 8. 오류 읽기: TypeError · undefined · 스택
  9. 9. 정규식 맛보기: test · match · replace
  10. 10. JSON 파싱 맛보기

if / else if / else

if (n % 15 === 0) return 'FizzBuzz';
if (n % 3 === 0) return 'Fizz';
if (n % 5 === 0) return 'Buzz';
return String(n);

더 구체적인 조건을 위에 둡니다. 15의 배수를 나중에 두면 3 또는 5에 먼저 걸립니다.

truthy / falsy

falsy: false, 0, '', null, undefined, NaN.
그 외는 대체로 truthy ('0', [], {} 포함).

if (tokens.length) { /* 비어 있지 않음 */ }
if (!s.trim()) return ''; // 공백만

빈 배열 []는 truthy입니다. 길이로 검사하세요.

&& 와 || (단락 평가)

const x = a && b; // a가 falsy면 a, 아니면 b
const y = a || b; // a가 truthy면 a, 아니면 b
const z = a ?? b; // a가 null/undefined일 때만 b

기본값에는 ??||보다 안전합니다. 0이나 ''를 유효 값으로 남길 때요.

삼항 연산자

return score >= 60 ? 'pass' : 'fail';

중첩 삼항은 읽기 어렵습니다. 조건이 셋 이상이면 if로 푸세요.

switch

문자열·숫자 분기가 많을 때 유용합니다. break를 빼먹으면 fall-through가 납니다.

switch (op) {
  case '+': return a + b;
  case '-': return a - b;
  default: return 0;
}

실전 패턴: 가드절

function solve(input) {
  const s = input.trim();
  if (!s) return "0";
  const n = Number(s);
  if (!Number.isFinite(n)) return "err";
  // 본 로직
}

에러·빈 값을 위에서 끊으면 아래가 단순해집니다.

De Morgan

!(a && b)!a || !b
복잡한 부정 조건을 풀어서 읽으세요.

연습

FizzBuzz를 solve로: 입력 n, 출력 규칙 문자열.
15 배수를 반드시 먼저 검사했는지 예제 15, 3, 5, 1로 확인.

관련 짧은 원리

관련 문제