• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

jsonLocalStorage.getItem("favorites") || []

22.04.02 13:27 작성 조회수 131

2

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

jsonLocalStorage.getItem("favorites") || []

에서는 []가 없으면 초기값이 없어서 에러가 났었는데

jsonLocalStorage.getItem("counter") 도 에러가 날까?

해서 궁금해서 LocaStroage를 비우고 해봤더니

에러가 나지 않더라구요 이유가 궁금합니다.

답변 1

답변을 작성해보세요.

0

좋은 의문입니다~

에러는 localStorage가 아닌 favorites의 기본값이 없어서 난 타입에러예요.


const [favorites, setFavorites] = React.useState(

          jsonLocalStorage.getItem("favorites") || []

        );

 

에서

favorites[0]을 한다는건 favorites를 배열로 가정하고 첫 번째 인자를 꺼내온거죠.

그래서 favorites가 배열이 아니라면 바로 에러가 날거예요.

 

const [counter, setCounter] = React.useState(

          jsonLocalStorage.getItem("counter")

        );

 

counter같은 경우는 타입이 달라서 생길 에러가 없어서 괜찮았던 것입니다.

 

 

유진수님의 프로필

유진수

질문자

2022.04.11

counter는 기본값이 없어도 되는건가요?

모든 state는 기본값이 있어도 없어도 되어요.

다만 배열 타입을 가정하고 만든 state에서 에러를 내지 않기 위해 기본값으로 빈 배열을 할당해준것입니다.