Frontend/JavaScript
[Javascript] LocalStorage는 데이터를 string으로 저장한다.
반응형
개요
LocalStorage
를 이용해서Object
값과Boolean
값을 저장해야 하는 상황이 있었다.- 각각의 값들을 그대로
setItem
으로 저장하고getItem
으로 불러와 사용했더니, 타입 에러가 발생했다. - 데이터의 타입 로그를 찍어보니 모두
string
으로 나왔다. - 원하는 결과가 아니다. 데이터 원본 타입 그대로 저장하고 그대로 가져오고 싶다!
1. Object
🔒 문제
window.localStorage.setItem("chat", chatObj); //객체 저장
const chat = window.localStorage.getItem("chat");
Object
를 저장했는데 로컬스토리지를 거치고 나니까 String
이 되어버림.
console.log(typeof chatObj); //Object
console.log(typeof chat); //string
🔑 해결
JSON
형태로 바꿔서 저장하고 →JSON.stringify();
JSON
형태로 바꿔서 가져온다 →JSON.parse();
window.localStorage.setItem("chat", JSON.stringify(chatObj));
const chat = JSON.parse(window.localStorage.getItem("chat"));
2. Boolean
🔒 문제
window.localStorage.setItem("isOpenChannel", isOpenChannelBoolean); //Boolean 저장
const isOpenChannel = window.localStorage.getItem("isOpenChannel");
Boolean
을 저장했는데 로컬스토리지를 거치고 나니까 String
이 되어버림.
console.log(typeof isOpenChannelBoolean); //Boolean
console.log(typeof isOpenChannel); //string
🔑 해결
- 저장은 그대로 한다.
- 값을 Boolean 형태로 반환하도록 한다 →
getItem("stringData") === "true"
window.localStorage.setItem("isOpenChannel", isOpenChannel);
const isOpenChannel = window.localStorage.getItem("isOpenChannel") === "true";
반응형
'Frontend > JavaScript' 카테고리의 다른 글
[JavaScript] 코어 자바스크립트 3장 - this (0) | 2023.05.27 |
---|---|
[JavaScript] 코어 자바스크립트 2장 - 실행 컨텍스트 (feat. 호이스팅, 스코프 체인) (0) | 2023.05.25 |
[JavaScript] 코어 자바스크립트 1장 - 데이터 타입 (0) | 2023.05.24 |
[JavaScript] 시계 만들기 (feat. setInterval, Date, padStart) (0) | 2021.10.30 |
[JavaScript] 바닐라 JS가 기억이 안날 때 빠르게 복습하기 (0) | 2021.10.27 |