[CleanCode] 삼항연산자를 어떻게 다룰까?

    함수 매개변수로 if문,for문,swich문을 받을 수 있을까?

    • 없다 . 그 이유는?
    • 값이 들어가야지 식이 들어가면 안된다.
    • 그럼 삼항연산자는 들어가도 되낭?
    • 된다. 그 이유는? 조건문이 있으나 값으로 귀결하기 때문에

    삼항연산자 다루기.

    • 숏코딩보다 일관성이 더 중요하다.

    -3개의 피연산자를 취해 아래의 형식으로 나타낸다.

    조건 ? 참 : 거짓

    case2 - ?과 참,거짓을 기준으로 indent나누고 괄호 활용하기

    const example = condition1
      ? ((a === 0) ? 'zero' : 'positive')
      : 'negative'

    case3 - null일때

    const welcomeMessage = (isLogin) => {
      const name = isLogin ? getName() : '이름없음';
    
      return `안녕하세요 ${name}`;
    };

    case4 - 반환이 없는 값을 사용할때 (bad)

    function alertMessage(isAdult){
      isAdult
      ? alert("입장이 가능합니다.") //undefined
      : alert("입장이 불가능합니다.")//undefined
    }
    • alert함수는 void 즉 반환을 하지 않는 함수이다.
    • 그렇기 때문에 숏코딩을 위해 억지로 쓰기 보단 if문을 쓰는 편이 낫다.

    case4 - 조건에 참값만 필요하든지 거짓값만 필요할땐 삼항연산자보다 truthy & falsy를 활용하자.

    Truthy $ Falsy

    • 참같은 값
    if (true)
    if ({})
    if ([])
    if (42)
    if ("0")
    if ("false")
    if (new Date())
    if (-42)
    if (12n)
    if (3.14)
    if (-3.14)
    if (Infinity)
    if (-Infinity)
    • 거짓같은 값
    if (false)
    if (null)
    if (undefined)
    if (0)
    if (-0)
    if (0n)
    if (NaN)
    if ("")
    • 거짓같은 값을 활용하여 다채롭게 활용하고 로직을 간단하게 응용한다.
    function printName(name){
      if(name === undefined || name === null){
        return '사람이 없네요.'
      }
    
      return `안녕하세요. ${name}님`
    }
    
    // null과 undefined가 falsy인 것을 이용해서 리펙토링한 기능
    function printName(name){
      if(!name){
        return '사람이 없네요.'
      }
    
      return `안녕하세요. ${name}님`
    }
    이 글은 https://www.udemy.com/course/clean-code-js 클린코드 강의를 보고 작성한 글입니다.

    댓글