JavaScript

자바스크립트 조건문 중첩, 조건부 실행 등

무녀누 2024. 4. 22. 16:41

조건문의 중첩

조건문안에 조건문을 사용하는 방법

예시

 

let age = 20;

let gender = "여성";

 

미성년자 구분

if(age >= 18) {

if (gender === "여성") {

console.log("성인 여성입니다.);

}

else {

console.log("성인 남성입니다.");

}

else {

if (gender === "여성") {

console.log("미성년 여성입니다.");

else {

console.log("미성년 남성입니다.");

}

}

 

이런 식으로 중첩 조건문을 작성할 수 있다.

하지만 이렇게 자주 작성하는 것은 가독성에 좋지 않기 때문에 추천하는 방법은 아니다.

필요할 때만 가끔 쓰도록 하자.

 

조건부 실행

특정한 경우에만 실행하는 것

예시

 

let x = 10;

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

 

코드의 의미는 앞에 조건을 충족하면 && 뒤에 console.log를 실행하라 라는 의미이다.

기존의 조건문과 살짝 다른 모습인데

기존의 조건문으로 바꿔 적으면

 

let x = 10;

if(x > 10) {

console.log("x는 양수입니다.");

}

 

이 코드와 동일하다.

 

위에 코드는 상당히 요즘코드다운 방식이다. 자주 써도 좋을 듯하다.

 

삼항연산자와 단축평가

예시

 

let y;

let z = y || 20;

console.log(z);

 

실행하면 20이 출력된다.

이 코드는 어떤 의미일까?

해석해 보자면 y는 현재 선언만 해두고 값이 undefined인 상태이다.

따라서 아래 z 조건은 y가 undefined상태이면

기본값으로 || 우측에 있는 20으로 설정하라는 코드이다.

 

falsy 한 값, truthy 한 값

이게 무슨 뜻이냐

if문에 조건에는 true or false의 값이 들어가야 중괄호 안에 코드를 실행하는 것인데

조건뿐만 아니라 그냥 숫자, 문자 등이 들어갈 수 있는데

그것들이 truthy 하냐 falsy 하냐 찾는 것이다.

예시

 

if (0) {

console.log("hi");

}

 

if ("") {

console.log("hi");

}

 

if (null) {

console.log("hi");

}

 

if (undefined) {

console.log("hi");

}

 

if (NaN) {

console.log("hi");

}

 

if (false) {

console.log("hi");

}

 

if (true) {

console.log("hi");

}

 

이렇게 전부 작성하고 실행한다면 hi문구가 한 번만 출력이 된다.

이게 무슨의미냐하면 마지막 true조건을 제외하고 나머지는 전부 falsy 한 값이라고 생각하면 된다.