조건식 ? 참일 때 실행되는 식 : 거짓일 때 실행되는 식
조건부 연산자는 문이 아니라 식이므로 결괏값이 나온다.
let value;
value = 5 < 0 ? '참입니다' : '거짓입니다';
// '거짓입니다'
조건부 연산도 중첩해서 사용할 수 있다.
let condition1 = true;
let condition2 = false;
let value = condition1 ? condition2 ? '둘 다 참' : 'condition1만 참' : 'condition1이 거짓';
console.log(value); // condition1만 참
조건부 연산자를 두 번 연이어 썻더니 가독성이 떨어진다. 이럴 때는 좀 더 읽기 편하게 소괄호 연산자로 감싸주면 좋다.
let value = condition1 ? (condition2 ? '둘 다 참' : 'condition1만 참') : 'condition1이 거짓';
또는 들여쓰기로 구분해도 된다.
let value = condition1
? condition2
? '둘 다 참'
: 'condition1만 참'
: 'condition1이 거짓';
첫 번째 조건(condition1)이 참인 경우에 중첩된 조건부 연산에 들어갔지만, 거짓인 경우에 들어갈 수도 있다.
let condition1 = false;
let condition2 = true;
let value = condition1 ? 'condition1이 참' : condition2 ? 'condition2만 참' : '둘다 거짓';
console.log(value) // condition2만 참
▼ 역시나 가독성을 위해 소괄호 연산자로 묶는게 좋다.
let value = condition1 ? 'condition1이 참' : (condition2 ? 'condition2만 참' : '둘다 거짓');
1분 퀴즈
다음 if문을 switch 문과 조건부 연산자로 바꿔보세요.
let cond = true;
let value = '';
if (cond) {
value = '참';
} else {
value = '거짓';
}
답:
let cond = true;
let value = '';
switch(cond) {
case true:
value = '참';
break;
case false:
value = '거짓';
break;
}
답:
let cond = true;
let value = cond ? '참' : '거짓'
'강의 정리 > 제로초 자바스크립트' 카테고리의 다른 글
🔖 2-14. else, else if, switch (0) | 2023.03.04 |
---|---|
🔖 2-13. 조건문(if) (0) | 2023.03.04 |
🔖 2-12. 상수(const)와 var (0) | 2023.03.04 |
🔖 2-11. 변수 수정하기 (0) | 2023.03.04 |
🔖 2-10. 변수 이름 짓기 (0) | 2023.03.04 |