본문 바로가기

JavaScript

[JavaScript] 조건부 연산자 '?'

'물음표 연산자'라고 불리는 '조건부 연산자'를 활용하면 조건문을 짧은 문법으로 쓸 수 있다.

let accessAllowed;
let age = prompt('나이를 입력해 주세요.', '');

if (age > 18) {
  accessAllowed = true;
} else {
  accessAllowed = false;
}

// 위 코드를 아래 코드로 변경 가능

let accessAllowed = (age > 18) ? true : false;

// age > 18 자체가 true false 반환이 가능하기 때문에 아래 코드로 변경 가능

let accessAllowed = age > 18;

문법 : 평가대상인 condition이 참이면 value1 아니면 value2 반환

let result = condition ? value1 : value2;

다중 '?'

else~if 문도 물음표 연산자로 변경 가능하다.

let age = prompt('나이를 입력해주세요.', 18);

let message = (age < 3) ? '아기야 안녕?' :
  (age < 18) ? '안녕!' :
  (age < 100) ? '환영합니다!' :
  '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!';
  
  alert( message );
  1. 첫 번째 물음표에선 조건문 age < 3을 검사.
  2. 그 결과가 참이면 '아기야 안녕?'를 반환. 그렇지 않다면 첫 번째 콜론 ":"에 이어지는 조건문 age < 18을 검사.
  3. 그 결과가 참이면 '안녕!'를 반환. 그렇지 않다면 다음 콜론 ":"에 이어지는 조건문 age < 100을 검사.
  4. 그 결과가 참이면 '환영합니다!'를 반환. 그렇지 않다면 마지막 콜론 ":" 이후의 표현식인 '나이가 아주 많으시거나, 나이가 아닌 값을 입력 하셨군요!'를 반환.