두 스토리지 객체는 동일한 메서드와 프로퍼티를 제공한다.
두 스토리지 객체는 Map과 유사하다. setItem, getItem, removeItem을 지원한다. 하지만 인덱스를 사용해 키에 접근할 수 있다는 점(key(index))에서 차이가 있다.
localStorage의 주요 기능은 다음과 같다.
localStorage.setItem('test', 1);
브라우저를 닫았다가 다시 열거나, 다른 창에서 페이지를 열더라도 아래와 같은 결과가 나온다.
alert( localStorage.getItem('test') ); // 1
localStorage는 동일한 오리진을 가진 모든 창에서 공유된다.
sessionStorage 객체는 localStorage에 비해 자주 사용되진 않는다.
제공하는 프로퍼티와 메서드는 같지만 훨씬 제한적이기 때문이다.
sessionStorage.setItem('test', 1);
페이지를 새로 고침하더라도 데이터가 여전히 남아있는 것을 확인할 수 있다.
alert( sessionStorage.getItem('test') ); // 새로 고침 후: 1
하지만 다른 탭에서 본 페이지를 열고 바로 위 예시만 실행해보면 null이 반환되는 것을 확인할 수 있다.
이렇듯 sessionStorage는 오리진뿐만 아니라 브라우저 탭에도 종속되어 있다. 이런 제약 때문에 sessionStorage는 잘 사용되지 않는다.