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 > 0) && console.log("x는 양수입니다."); // 실행 결과: x는 양수입니다.
// 논리곱 연산자 &&, 위에서는 x는 10이므로 0보다 큼이 참이고, console.log()안에 내용이 들어있음으로 참으로 인정된다.
// 따라서 && 양 옆에 있는 인자가 모두 참이므로 console.log 명령을 수행한다.
if (x > 0) {
console.log("x는 양수입니다.");
}
// 실행 결과: x는 양수입니다.
// 위 두 코드는 같은 의미이다.
삼항 연산자와 단축평가 응용
let y; // y는 아직 undefined이다.
let z = y || 20; // y가 undefiend라면(존재하지 않다면) x를 20으로 지정해라
console.log(z);
// 실행 결과: 20
// 조건부 실행과 삼항 연산자, 단축평가는 지금은 어색해 보일 수 있으나 익숙해지면 상당히 편리한 개발 패턴이 될 것이다.