js에서 세 개의 피연산자를 취할 수 있는 유일한 연산자.
보통 if 명령문의 단축 형태
로 쓰인다.
예시(1)
function fruit(myFavorite) { if (myFavorite === 'apple') { return 'apple'; } else { return 'lemon'; } } // 삼항 조건 연산자 - 함수 로직 내 if문과 return의 구조를 변형 function fruit(myFavorite) { return (myFavorite ? 'apple' : 'lemon'); } console.log(fruit(true)); // 'apple' console.log(fruit('apple')) // 'apple' console.log(fruit(false)); // 'lemon' console.log(fruit('lemon')) // 'lemon' console.log(fruit(null)) // 'lemon' ❗ 조건이 true이면, ?(if)의 값을 반환하며, 반대의 경우 :(or)의 값을 반환한다
예시(2)
let age = 29; let drinkAlcohol = (age > 19) ? "can drink" : "can't"; console.log(drinkAlcohol()); // "can drink" 출력
예시(3)
let condition1 = true, condition2 = false, access = condition1 ? (condition2 ? "true true": "true false") : (condition2 ? "false true" : "false false"); console.log(access); // "true false" 출력 // 풀이 if (condition1 === true) { if (condition2 === true) { return "true true" } else { return "true false" } else { if (condition2 === true) { return "false true" } else { return "false false" } }
👉 삼항 연산자는 if / else
문을 사용하는 함수를 반환하는데 적합하다
예시
let func = function(condition ) { if (condition) { return value1; } else { return value2; } // 삼항 조건 연산자 - 함수 로직 내 if문과 return의 구조를 변형 let func = function(condition) { return condition ? value1 : value2 }
❗
if / else
문을 대체하는 삼항연산자가return
을 여러 번 사용하고 if 블록 내부에서 한 줄만 나올 때,return
을 대체할 수 있는 좋은 방법이 된다.
예시
var func1 = function( .. ) { if (condition1) { return value1 } else if (condition2) { return value2 } else if (condition3) { return value3 } else { return value4 } } // 삼항 조건 연산자 - 함수 로직 내 if문과 return의 구조를 변형 var func2 = function( .. ) { return condition1 ? value1 : condition2 ? value2 : condition3 ? value3 : value4 }