자바스크립트를 처음 사용할 때 의문이 들었던 코드 중에 하나이다. 보통 if... else문을 통해서 개발을 해오던 터라 조금 생소하기는 하였다. 그러나 한 번 알고 나니 굉장히 편리하여 자주 사용하는 연산자가 되었다. 조금 더 이해하기 쉽도록 표현한다면 다음과 같이 될 수 있을 것이다.
조건식 ? 조건식이 참일 때 반환할 값 : 조건식이 거짓일 때 반환할 값
즉,? 앞에는 참인지, 거짓인지 평가할 조건식이 들어간다. 만일 조건식의 평가 값이 참, 거짓이 아니면 암묵적으로 타입을 변환한다. 그리고 : 를 통해서 참일 때의 값, 거짓일 때의 값을 출력한다.
그렇다면 if... else문을 사용하면 되는데 삼항 조건 연산자를 사용해야 하는 이유가 무엇일까? 삼항 조건 연산자 표현식은 "var result = 삼항 조건 연산자"처럼 값처럼 사용할 수 있다는 것이다. 하지만 반대로 가독성이 떨어진다는 단점이 있다.
즉, 조건에 따라 어떤 값을 결정하여 도출해야 한다면 삼항 조건 연산자를 사용하는 게 더 유리하고, 수행해야 할 문이 하나가 아니고 여러 개라면 if... else로 가독성을 높이는 것이 더 유리하다