Skip to content

삼항연산자

조건부 삼항연산자(Ternary Conditional Operator)라고도 부른다. if문을 간략히 작성하기 위해 사용되며 if문과의 성능 차이가 있을 수는 있지만 성능폭이 크지는 않다.

아래와 같은 if문이 주어진 경우,

javascript
if (isExists) {
	return 'Exist';
}
return 'Not Exist';

삼항연산자로 바꾼다면 아래와 같이 작성할 수 있다.

javascript
return isExists ? 'Exist' : 'Not Exist';

? 앞에는 조건문을 넣고, : 기호로 참일 때와 거짓일 때를 구분한다. 조건문 또는 참이나 거짓에 복잡한 구문이 들어가는 경우 괄호를 사용할 수 있다.

참이나 거짓에 삼항연산자를 다시 한번 사용하여 중첩 삼항연산자를 만들 수도 있다.

javascript
return isExists ? 'Exist' : showError ? 'ERR' : null;

다만 위와 같은 중첩 삼항연산자는 코드 가독성에 호불호가 있으므로 가급적 사용하지 않는 것이 좋다. 필요한 경우 아래와 같은 방법으로 가독성을 높일 수 있다.

javascript
return isExists ? 'Exist' : showError ? 'ERR' : null;
javascript
return isExists ? 'Exist' : showError ? 'ERR' : null;

삼항 연산자의 참과 거짓에는 리턴값 외에 함수를 사용하지 않는 것이 좋다. 분기가 많아질 경우는 if문을 쓰는 것이 더욱 바람직 할 수 있다.