삼항 연산자

kirin.log·2020년 12월 28일
2

✅ 조건부 삼항 연산자

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
}

profile
boma91@gmail.com

0개의 댓글