항해99

[항해99] TIL D+22

crab. 2022. 8. 2. 09:02
반응형

건강이 최우선이다

  • 아니 무슨 내 몸은 뭐만 살짝 잘못들어가거나 무리를 해도 바로 탈이 나는지
  • 참 정직한 몸이다..
  • 가끔은 대충 먹어도 탈안나고 그럼 좋을텐데
  • 근데 또 원인과 결과가 확실하니 그건 좋다
  • 지금은 괜찮다

리덕스

  • useSelector
  • useDispatch
  • reducer
  • action
  • store
  • 각각의 용어들의 정의와 그 쓰임새를 잘 기억하고 있어야겠다.

옵셔널 체이닝이란 뭘까요? 어떤 경우에 사용할까요?

옵셔널 체이닝이란

  • Optional Chaining은 ES2020에서 등장한 새로운 연산자로서'?.'의 형태로 사용하며 체인으로 이루어진 각 참조가 유효한지 명시적으로 검증하지 않고 연결된 객체 체인 내에 깊숙히 위치한 속성 값을 읽을 수 있는연산자이다.
  • 체이닝 연산자와 비슷하게 동작하지만, 만약의 참조가 null 혹은 undefined여도 에러식을 뱉지 않고 undefined값을 리턴한다.
  • 함수 호출시에도 마찬가지로 값이 없다면 undefined를 리턴한다.
  • Optional chaining을 사용하므로써 문법의 가독성이 올라가고 한결 간결한 표현식으로 작성할 수 있게 된다.
  • 속성값이 존재한다는 확실한 보증이 없을 경우 그 객체를 탐색하는 데 도움을 준다.

예제코드

const animals = {
	cat: {
    	  name: "나비"
		    },
  lion: {
    	   name: "호랑이"
        }
 }

const dogName = animals.dog?.name;

console.log(dogName); // 결과는??
  • 위 코드에서 찍히는 console.log는 undefined이다.

옵셔널체이닝을 사용하는 경우

const nestedProps = obj.first && object.first.name
  • 이처럼 중첩구조를 가진 object에서 객체의 속성값을 찾기 위해선 이런식으로 참조를 확인하여야 했었다.
  • 논리 연산자 &&를 이용하여 좌항 연산자가 truty한 경우에만 object.first.name을 불러올 수 있었다.
  • 하지만 이를 간단이 하여서
const nestedProps = obj.first?.name;
  • 으로 표현하여 first의 값이 존재하면 name을 반환하고 없으면 undefined를 반환한다.
  • 이를 풀어서 해석하면
const nestedProp = ((obj.first === null || obj.first === undefined) ? undefined : obj.first.name);
  • 이런 식이 될 수 있겠다.
반응형

'항해99' 카테고리의 다른 글

[항해99] TIL D+24  (0) 2022.08.04
[항해99] TIL D+23  (2) 2022.08.03
[항해99] TIL D+21  (2) 2022.08.01
[항해99] TIL D+20  (0) 2022.07.31
[항해99] TIL D+19  (0) 2022.07.30