Sharryhong's Front-End
  • About Sharryhong's Front-End Blog.
  • Front-End Dev
    • Flutter
      • API Key 안전하게 숨기기. Cloudflare Workers!
      • Web CORS 에러
    • Vue.js
      • usePagination - composition api (vue2)
      • Pagination Component
      • Vue Image Skeleton
      • Sort an Array of Objects by Boolean property
      • Dynamic Components
      • LoadingBar Component
      • composition-api 사용하여 menu 의 outside click 시 close
      • vue+TypeScript
      • Vue.js 개발자를 위한 VS Code
      • Vue3 Chrome Extension
      • input file 선택된 파일 명 reset하기
      • element 내부 scroll 될 때, ScrollTop 값에 따라 div를 보이게, 안보이게 제어하기
      • 진입한 url path에 맞게 메서드 실행
    • React
      • 절대경로(absolute path) 설정, jsx파일로 이동 설정
      • useContext rerender issue
      • Firebase v9 Auth with React
      • Firebase v9 Realtime Database with React
      • React Star Rating (별점 표시)
      • React App deploying (배포)
    • Next.js
      • CSR, SSR, Next.js
    • API Mocking
      • Vue 에서 msw 적용하기
    • Storybook
      • styled-component theme.ts가 storybook엔 적용안되는 이슈
      • storybook에서 alias path 안되는 이슈
      • storybook에 Global Style 적용하기
  • etc
    • brew update
    • npm upgrade (mac)
  • DEV BETTER
    • Clean Code
      • Clean Code JavaScript 강의
        • Variables - 변수 다루기
        • Boundary - 경계 다루기
        • Conditional - 분기 다루기
        • Array - 배열 다루기
      • Tip. 클린 코드를 위한 5가지 팁
      • Tip. 코딩 잘하는 팁 3가지
    • 웹 성능 최적화 (performance)
      • performance 강의
        • loading, rendering performance
        • Tools
        • Image size optimization
        • bottleneck (병목) code 탐색
Powered by GitBook
On this page
  • 값식문
  • 삼항연산자
  • 단축평가(short-circuit evaluation)
  • Early Return
  • ?? Nulish coalescing operator (널 병합 연산자)

Was this helpful?

  1. DEV BETTER
  2. Clean Code
  3. Clean Code JavaScript 강의

Conditional - 분기 다루기

2022-01

값식문

React의 JSX는 babel에 의해 js로 트랜스파일링되면 객체로 바뀐다.

따라서 JSX에 '문'이 오면 안되고, '값'이나 '식만 넣어야 한다.

예) 삼항연산자는 값으로 귀결되므로 사용가능. if문은 '문'이므로 사용하면 안됨

삼항연산자

과도한 숏코딩은 가독성이 떨어진다. if문이나 switch case문이 나을 수 있다.

좋은 예) null일 수 있는 상황에 맞게 쓰여짐

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

나쁜 예) 값또는 식이 나와야 하는데 함수를 실행시키고 있다. 둘다 undefinded일 수 있다.

function alertMessage(isAdult) {
  isAdult
    ? alert('입장 가능')
    : alert('입장 불가');
}

단축평가(short-circuit evaluation)

&& 연산자: 모두가 true여야 마지막까지 도달

|| 연산자 : 모두가 false여야 마지막까지 도달

수정 전 코드

function getActiveUserName(user, isLogin) {
  if(isLogin) {
    if(user) {
      if(user.name) {
        return user.name
      } else {
        return '이름없음'
      }
    }
  }
}

단축평가 사용으로 개선 코드

function getActiveUserName(user, isLogin) {
  if(isLogin && user) {
    return user.name || '이름없음'
  }
}

Early Return

Early Return 사용으로 읽기 쉬워진 코드 예)

function loginService(isLogin, user) {
  if (login) { 
    return; 
  }
  if (!user.nickName) {
    return registerUser(user);
  }
  ...
}

?? Nulish coalescing operator (널 병합 연산자)

a || b 인 경우 a가 falsy면 b 실행

0, '' 도 false가 된다.

널 병합 연산자 (??) 로 변경하면 null, undefined일때만 평가된다.

a ?? b

PreviousBoundary - 경계 다루기NextArray - 배열 다루기

Last updated 3 years ago

Was this helpful?

optionam chaining operator와 함께쓰면 유용하다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator#optional_chaining_연산자.와의_관계