-
삼항연산자(조건부연산자, ?)Language/JavaScript 2022. 9. 22. 18:44
조건부 연산자(?, 삼항연산자)
-출처 : https://ko.javascript.info/ifelse
'물음표(question mark) 연산자’라고도 불리는 '조건부(conditional) 연산자’를 사용하면 if문을 짧고 간결하게 변형할 수 있습니다. 조건부 연산자는 물음표 '?' 로 표시합니다. 피연산자가 세 개이기 때문에 조건부 연산자를 '삼항(ternary) 연산자’라고 부르는 사람도 있습니다. 참고로, 자바스크립트에서 피연산자를 3개나 받는 연산자는 조건부 연산자가 유일합니다.
let result = condition ? value1 : value2; // 평가 대상인 condition이 truthy라면 value1이, 그렇지 않으면 value2가 반환됩니다.
또한, if문을 중첩할 수 있듯 삼항연산자도 중첩할 수 있습니다.
let age = prompt('나이를 입력해주세요.', 18); let message = (age < 3) ? '아기야 안녕?' : (age < 18) ? '안녕!' : (age < 100) ? '환영합니다!' : '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!'; alert( message );
물음표 연산자를 이런 방식으로 쓰는 걸 처음 본 분이라면 이 코드가 어떻게 동작하는지 파악하기 힘들 수 있습니다. 그러나 주의를 집중하고 보면, 단순히 여러 조건을 나열한 코드임에 불과하다는 것을 알 수 있습니다.
- 첫 번째 물음표에선 조건문 age < 3을 검사합니다.
- 그 결과가 참이면 '아기야 안녕?'를 반환합니다. 그렇지 않다면 첫 번째 콜론 ":"에 이어지는 조건문 age < 18을 검사합니다.
- 그 결과가 참이면 '안녕!'를 반환합니다. 그렇지 않다면 다음 콜론 ":"에 이어지는 조건문 age < 100을 검사합니다.
- 그 결과가 참이면 '환영합니다!'를 반환합니다. 그렇지 않다면 마지막 콜론 ":" 이후의 표현식인 '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!'를 반환합니다.
'Language > JavaScript' 카테고리의 다른 글
JavaScript 100제 오답노트 26번_행성문제 2 (0) 2022.10.06 JavaScript 100제 1부 오답노트 (1~20) (0) 2022.09.30 Value Types and Reference Types (0) 2022.09.22 문자열을 배열로 변환, 배열을 문자열로 변환, Spread Operator (0) 2022.09.22 단축 평가 값(short circuit evaluation) (0) 2022.09.05