개발/javascript
연산자04 - 삼항 조건 연산자
마루쨩
2023. 9. 19. 16:48
"연산자"
4. 삼항 조건 연산자
삼항 조건 연산자(ternary operator)는 조건식의 평가 결과에 따라 반환할 값을 결정한다. 자바스크립트의 유일한 삼항 연산자이며 부수효과는 없다. 삼항 조건 연산자 표현식은 아래와 같이 사용한다.
조건식 ? 조건식이 true일때 반환할 값 : 조건식이 false일떄 반환할 값
물음표(?) 앞의 첫 번째 피연산자는 조건식, 즉 불리언 타입의 값으로 평가될 표현식이다. 만약 조건식의 평가 결과가 불리언 값이 아니면 불리언 값으로 암묵적 타입 변환된다. 이때, 조건식이 참이면 콜론(:) 앞의 두 번째 피연산자가 평가되어 반환되고, 거짓이면 콜론(:) 뒤의 세 번째 피연산자가 평가되어 반환된다.
var x = 2;
// 2 % 2는 0이고 0은 false로 암묵적 타입 변환된다.
var result = x % 2 ? '홀수' : '짝수'; // true면 홀수 false면 짝수
console.log(result); // 짝수
삼항 조건 연산자는 if...else 문을 사용해도 동일한 처리를 할 수 있다.
var x = 1, result;
// 2 % 2는 0이고 0은 false로 암묵적 타입 변환된다.
if (x % 2) result = '홀수';
else result = '짝수';
console.log(serult); // 짝수
하지만 if...else 문은 표현식이 아닌 문이다. if...else문을 변수에 담아보면 에러가 난다..!
따라서 if...else 문은 값처럼 사용할 수 없다.
삼항 조건 연산자와 if...else 문은 호환 가능하고 거의 비슷한 결과를 낼 수 있지만, 근본적인 차이는 표현식인 문인지, 표현식이 아닌 문인지의 차이가 있다.