JavaScript에서의 판단내리기: 조건문과 논리 연산의 모든 것

JavaScript에서의 판단내리기란?

JavaScript는 프로그램이 특정 조건에 따라 서로 다른 작업을 수행할 수 있도록 다양한 조건문과 연산자를 제공합니다. 여기서는 비교 연산자, truthy/falsy 값, 조건문(if, else if, else), 삼항 연산자, 논리 연산자, switch문 등 판단내리기의 주요 요소를 자세히 설명합니다.


1. 비교 연산자

비교 연산자는 두 값을 비교하여 true 또는 false를 반환합니다.

연산자 설명 예시 (a = 5, b = "5", c = 10)
== 값이 같으면 true a == btrue
=== 값과 자료형이 같으면 true a === bfalse
!= 값이 다르면 true a != ctrue
!== 값 또는 자료형이 다르면 true a !== btrue
< 작은 경우 true a < ctrue
<= 작거나 같은 경우 true a <= btrue
> 큰 경우 true c > atrue
>= 크거나 같은 경우 true a >= cfalse

2. 이중 등호(==)와 삼중 등호(===)

  • 이중 등호 (==): 값만 비교하며, 자료형을 자동 변환합니다.
  • 삼중 등호 (===): 값과 자료형 모두를 비교하며, 자료형 변환 없이 정확히 비교합니다.
const a = 5;
const b = "5";

console.log(a == b);  // true
console.log(a === b); // false

: 자료형까지 명확히 비교해야 하는 경우 === 사용을 권장합니다.


3. 조건문 (if, else if, else)

기본 구조

if (조건1) {
  // 조건1이 true일 때 실행
} else if (조건2) {
  // 조건2가 true일 때 실행
} else {
  // 위 조건들이 모두 false일 때 실행
}

예시

const score = 85;

if (score >= 90) {
  console.log("A 학점");
} else if (score >= 80) {
  console.log("B 학점");
} else {
  console.log("C 학점");
}

조건부 네스팅

조건문 안에 또 다른 조건문을 중첩하여 사용 가능합니다.

const temperature = 35;

if (temperature > 30) {
  if (temperature > 40) {
    console.log("너무 더움");
  } else {
    console.log("더움");
  }
} else {
  console.log("적당함");
}

4. 논리 연산자 (AND, OR, NOT)

AND (&&)

모든 조건이 true일 때만 true를 반환합니다.

const age = 25;
const hasID = true;

if (age >= 18 && hasID) {
  console.log("입장 가능");
}

OR (||)

하나라도 truetrue를 반환합니다.

const isWeekend = false;
const isHoliday = true;

if (isWeekend || isHoliday) {
  console.log("휴일입니다");
}

NOT (!)

조건을 반대로 변환합니다.

const loggedIn = false;

if (!loggedIn) {
  console.log("로그인하세요");
}

5. Truthy와 Falsy 값

JavaScript는 조건 평가 시, 특정 값을 truthy(참처럼 간주) 또는 falsy(거짓처럼 간주)로 해석합니다.

Falsy 값

  • false
  • 0
  • "" (빈 문자열)
  • null
  • undefined
  • NaN

Truthy 값

Falsy 값이 아닌 모든 값은 truthy로 간주됩니다.
예시:

if ("hello") {
  console.log("Truthy"); // 실행됨
}

if (0) {
  console.log("Falsy"); // 실행되지 않음
}

6. 조건부 연산자 (삼항 연산자)

삼항 연산자를 사용하면 단순한 조건문을 한 줄로 작성할 수 있습니다.

const age = 20;
const message = age >= 18 ? "성인" : "미성년자";
console.log(message); // "성인"

7. switch 조건문

if-else의 대안으로, 특정 값과 여러 값을 비교할 때 사용합니다.

const day = "월요일";

switch (day) {
  case "월요일":
    console.log("한 주의 시작입니다!");
    break;
  case "금요일":
    console.log("주말이 곧 옵니다!");
    break;
  default:
    console.log("평범한 날입니다.");
}

8. 종합 예제

모든 요소를 활용한 프로그램 예제입니다.

const userInput = "yes";
const age = 17;

// truthy/falsy 값 확인
if (userInput) {
  console.log("사용자가 입력했습니다");
}

// AND, OR 조건 및 중첩 if 사용
if (age >= 18 && userInput === "yes") {
  console.log("성인 인증 완료");
} else if (age < 18 || userInput === "no") {
  console.log("미성년자 인증");
}

// switch와 삼항 연산자
const accessLevel = age >= 18 ? "성인" : "미성년자";

switch (accessLevel) {
  case "성인":
    console.log("모든 권한을 가집니다");
    break;
  case "미성년자":
    console.log("제한된 권한만 있습니다");
    break;
  default:
    console.log("알 수 없는 사용자");
}

Categories:

Updated:

Leave a comment