Today I Learned/TIL 05

2023 - 05 - 15 조건문, 조건부실행, 삼항연산자, 단축평가

sangwoo_rhie 2023. 6. 1. 07:21

 

오늘 할일

자바스크립트 1주차 강의 듣기

 

오늘 배운것

1. 조건문 (if문, else문, else if 문, switch / break문)

2. 조건문 중첩

3. 조건부실행(&&),

4. 삼항연산자, 단축평가

5. truthy한 값, falsy한 값

 

1. if문

let x = 10;
if (x > 0){
    console.log("x는 양수입니다.")
} 

//x는 양수입니다. (선언된 변수값 10이 if문을 충족시킴)

 

y의 길이가 5보다 크거나 같으면 길이를 출력하시오.

let y = "Hello World"

if (y.length >= 5){
    console.log(y.length)
}

// 11 (선언된 변수값 "Hello World" 이 if문을 충족시킴)

 

2. if~ else 문

let x = -3;
if (x > 0) {
    console.log("x는 양수입니다.")
} else {
    console.log("x는 음수입니다.")
}

// x는 음수입니다. (선언된 변수값 -3이 if문을 충족시키지 못함)


3. if - else if - else 문

let x = 10;

if (x < 0){
    console.log("1")
} else if (x >=0 && x < 10) {
    console.log("2")
} else {
    console.log("3")
}

// 3 (선언된 변수값 10이 if문과 else if문 조건을 충족시키지 못함)


4. switch문

변수의 값에 따라, 여러 개의 경우(case)중 하나를 선택. 디폴트값(defalut)이 있음
case에는 콜론(:)을 쓰고, case가 끝날 때 반드시 break문을 같이 넣어야 함.
맨 마지막에 default값을 항상 넣어주어야 한다.

let fruit = "kiwi";

switch (fruit) {
    case "apple":
        console.log("사과입니다.");
        break;
    case "banana":
        console.log("바나나입니다.");
        break;
    case "kiwi":
        console.log("키위입니다.");
        break;
    default:
        console.log("아무것도 아닙니다.");
}

// 키위입니다.



조건문 중첩 (조건문 안에 또 조건문 넣기)

 

1. 조건문을 이용해 미성년자 구분하기

let age = 20;

if (age >= 18) {
    console.log("성인입니다.")
} else {
    console.log("미성년자입니다.")
}

// 성인입니다.

 

2. 조건문 중첩을 이용해 미성년자, 성별 구분하기.

let age = 20;
let gender = "여성";

if (age >= 18) {
    console.log("성인입니다.")
    if (gender === "여성") {
        console.log("성인 여성입니다.")
    } else {
        console.log("성인 남성입니다.")
    }
} else {
    if (gender === "여성"){
        console.log("미성년 여성입니다.")
    } else {
        console.log("미성년 남성입니다.")
    }
    console.log("미성년자입니다.")
}

 

 

조건부 실행 (&& an문,   || or 문). 

if를 쓰지 않아도 조건문이 성립됨. and 조건 (&&) 또는, or조건 (||) 때문에 뒤에부분이 실행됨.

and 조건(&&)

let x = 10;
(x > 0) && console.log("x는 양수입니다.")


// x는 양수입니다.
조건 (x > 0)을 충족하므로 뒤에부분 실행.


or 조건 (||)
삼항연산자와 단축평가

or 조건 (||)

let y;
let z = y || 20;
console.log(z); 


// 20

y는 선언만 하고 할당안함. 즉 y는 undefined
let z = y ||20 은. y가 undefined이면 20을 설정해달라는 뜻(조건문)

 

truthy한 값, falsy 한 값

if (조건 = true 또는 false값) {  main logic }

여기서 '조건'에 들어갈수 있는 경우 = truthy한 값
조건에 들어갈수 없는 경우 =  falsy 한 값 (조건문에 넣어도 실행안됨)

if (0) {
    // main logic
    console.log("Hello World")
}

if ("") {
    // main logic
    console.log("Hello World")
}

if (null) {
    // main logic
    console.log("Hello World")
}

if (undefined) {
    // main logic
    console.log("Hello World")
}

if (NaN) {
    // main logic
    console.log("Hello World")
}

if (false) {
    // main logic
    console.log("Hello World")
}

if (true) {
    // main logic
    console.log("Hello World")
}

 

여기서 맨 마지막 true만 제외하고는, 나머지 조건들은 falsy한 값들이기 때문에 출력이 안됨.

마지막 true만 truthy한 값이므로 "Hello World"출력됨