예시
// window 생략 가능
// setItem
window.localStorage.setItem('키', '값')
// 객체를 사용하고 싶을때
window.localStorage.setItem('user', JSON.stringify({name: '접니다'}))
const obj = {
name: 접니다,
age: 31
}
window.localStorage.setItem('user', JSON.stringify(obj))
//getItem
window.localStorage.getItem('키') // '값'
window.localStorage.getItem(JSON.parse('user')) // {name: 접니다}
//removeItem
window.localStorage.removeItem('키') // localStorage.getItem('키') 결과: undefined
//clear
window.localStorage.claer()
//key 순회
for(let i = 0; i < localStorage.length; i++) {
let key = localStorage.key(i);
console.log(`${key}: ${localStorage.getItem(key)}`);
}
let keys = Object.keys(localStorage);
for(let key of keys) {
console.log(`${key}: ${localStorage.getItem(key)}`);
}
// length
window.localStorage.length
명시적으로 데이터를 삭제하지 않는이상 영구적으로 보관
-> 브라우저를 닫고 다시열어도 데이터가 유지
도메인만 같으면 전역적으로 데이터 공유
현재 페이지가 브라우징 되고 있는 브라우저 컨택스트 내에서만 유지
-> 브라우저를 닫으면 데이터 삭제
도메인이 같더라도 브라우저 탭이 다르면 다른 영역
-> 똑같은 페이지를 두개 띄워놓고 Session Storage를 확인해보면 각각 별개의 영역을 가짐
데이터를 서버로 보내지 않는다
-> 매번 요청시마다 서버로 보내는 쿠키와 달리 Web Storage는 브라우저에만 저장한다(서버 리소스를 아낄수 있다)
용량의 차이
-> 하나의 사이트에서 쿠키의 개수는 20개, 용량은 4kb 제한
-> Web Storage는 도메인별 5MB 이상
객체정보를 저장할 수 있다
영구적으로 데이터를 보관가능
-> Cookie는 만료일자를 설정해야 해서 언젠가 소멸하게 되어 있다