자바 스크립트에서 localStorage를 지우시겠습니까?


답변:


1371

localStorage를 지우려면 이것을 사용하십시오.

localStorage.clear();

6
@BakedInhalf는 전혀 없습니다. 어쩌면 앱이 다시 설정했을까요?
destan

5
앱이 시작될 때 localStorage.clear ()를 호출하지만 브라우저를 닫거나 캐시를 지우는 등의 경우에도 데이터는 여전히 존재합니다. 초기화 할 때 모델의 "인스턴스"속성을 임의의 숫자로 설정했기 때문에 이것을 알고 있으며, 주어진 ID에 대해 인스턴스 속성은 항상 동일합니다.
sydneyos

11
@ digital-plane 특정 도메인 또는 모든 스토리지에서 로컬 스토리지를 삭제합니까?
crisron December

18
clear()사용중인 특정 도메인에서 모든 localStorage 키와 값을 제거합니다. Javascript가 CORS로 인해 다른 도메인에서 localStorage 값을 가져올 수 없습니다.
Fizzix

1
@BakedInhalf가 맞습니다. 페이지를 새로 고칠 때까지 유지됩니다. localStorage를 지우고 바로 채우면 이전 내용이 복원되고 새 항목이 추가됩니다. localStorage를 지우고 새로 고침을 수행하면 비어 있으며 다시 채울 수 있습니다.
Cyber

198

사용자의 로컬 저장소에서 특정 항목 또는 변수를 제거하려는 경우

localStorage.removeItem("name of localStorage variable you want to remove");

1
안녕하세요, @Ajeet 특정 항목에 대해 제거하고 싶지 않다면 어떻게 할 수 있습니까? 예를 들어 'removeItemNotIn (key)', '정의 된 키를 제외한 모두 제거'? 미리 감사드립니다.
Me_developer

안녕하세요, @Shadow 특정 항목에 대해 제거하고 싶지 않다면 어떻게 할 수 있습니까? 예를 들어 'removeItemNotIn (key)', '정의 된 키를 제외한 모두 제거'? 미리 감사드립니다.
Me_developer

내 문제에 대한 해결책을 찾았습니다 .- if (localStorage.getItem (particularKey) == null) {localStorage.clear (); } 그러나 더 나은 해결책이 있다면 알려주십시오. 감사.
Me_developer

1
@learner 따라서 특정 키를 제외한 모든 키제거 하고 싶 습니까? 이를 위해 당신은 이와 같은 일을 할 수 있습니다 var key; for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != particularKey){ localStorage.removeItem(key); } }
Ajeet Lakhani

1
또한 값을 얻고, 값을 지우고 다시 설정하는 것이 더 다양합니다. let tmp = localStorage.getItem('<your-name>'); localStorage.clear(); localStorage.setItem('<your-name>')
Michael B.


11

다음은 예외가있는 모든 localStorage 항목을 제거 할 수있는 기능입니다. 이 기능에는 jQuery 가 필요 합니다. 요점을 다운로드 할 수 있습니다 .

당신은 이것을 이렇게 부를 수 있습니다

let clearStorageExcept = function(exceptions) {
  let keys = [];
  exceptions = [].concat(exceptions); // prevent undefined

  // get storage keys
  $.each(localStorage, (key) => {
    keys.push(key);
  });

  // loop through keys
  for (let i = 0; i < keys.length; i++) {
    let key = keys[i];
    let deleteItem = true;

    // check if key excluded
    for (let j = 0; j < exceptions.length; j++) {
      let exception = exceptions[j];
      if (key == exception) {
        deleteItem = false;
      }
    }

    // delete key
    if (deleteItem) {
      localStorage.removeItem(key);
    }
  }
};

1
이상한 점은이 undefined유효한위한 열쇠 setItemgetItem
ebob

@ebob 예, 이상하게 보일 수도 있지만 실제로는 그렇지 않습니다. localStorage는 키가 문자열로 변환된다는 점에서 객체와 비슷한 방식으로 작동합니다. 예를 들어 undefined를 다음과 같은 키로 사용 localStorage.setItem(undefined, 'example Txt!')하면 실제로 'undefined'다음 코드를 실행할 때 볼 수 있듯이 호출 된 키 아래에 키를 저장합니다 . console.log(localStorage.getItem('undefined')) 출력 example Txt!합니다.
Jack Giffin

8

로컬 저장소는 전 세계에 연결되어 window있습니다. 크롬 devtools에 로컬 스토리지를 기록하면 다음과 같은 API가 있음을 알 수 있습니다.

여기에 이미지 설명을 입력하십시오

항목을 삭제하기 위해 다음 API를 사용할 수 있습니다.

  1. localStorage.clear(): 전체 로컬 스토리지를 지 웁니다.
  2. localStorage.removeItem('myItem'): 개별 항목을 제거하려면

4

우선, localStorage가 활성화되어 있는지 확인해야합니다. 다음과 같이하는 것이 좋습니다.

var localStorageEnabled = false;
try { localStorageEnabled = !!localStorage; } catch(e) {};

예, 경우에 따라 localStorage가 창 객체의 멤버인지 확인할 수 있습니다. 그러나 인덱스 'localStorage'에 액세스하려는 경우에도 예외를 발생시키는 iframe 샌드 박싱 옵션이 있습니다. 따라서 최상의 방법으로 localStorage가 활성화되어 있는지 확인하는 가장 좋은 방법입니다. 그런 다음 localStorage를 지우십시오.

if (localStorageEnabled) localStorage.clear();

예를 들어, 웹킷 브라우저에서 오류가 발생한 후 localStorage를 지울 수 있습니다.

// clears the local storage upon error
if (localStorageEnabled)
  window.onerror = localStorage.clear.bind(localStorage);

위의 예에서는 함수가 .bind(window)없으면 개체가 자동으로 실패하게하는 대신 개체 localStorage.clear의 컨텍스트에서 함수가 실행 되기 때문에 필요합니다 . 이를 설명하기 위해 아래 예제를보십시오.windowlocalStorage

window.onerror = localStorage.clear;

와 같다:

window.onerror = function(){
    localStorage.clear.call(window);
}

3

모든 항목을 삭제하려면 당신은에 저장된 로컬 스토리지 다음

localStorage.clear();

저장된 모든 키를 지우려면 이것을 사용하십시오.

특정 키 / 값 만 지우거나 제거하려면 removeItem (key) 사용할 수 있습니다 .

localStorage.removeItem('yourKey');

2
localStorage.clear();

또는

window.localStorage.clear();

특정 항목을 지우려면

window.localStorage.removeItem("item_name");

id로 특정 값을 제거하려면 :

var item_detail = JSON.parse(localStorage.getItem("key_name")) || [];           
            $.each(item_detail, function(index, obj){
                if (key_id == data('key')) {
                    item_detail.splice(index,1);
                    localStorage["key_name"] = JSON.stringify(item_detail);
                    return false;
                }
            });


0

다음은 자바 스크립트를 사용하여 브라우저에 저장된 로컬 저장소를 지우는 간단한 코드입니다.

    <script type="text/javascript">

if(localStorage) { // Check if the localStorage object exists

    localStorage.clear()  //clears the localstorage

} else {

    alert("Sorry, no local storage."); //an alert if localstorage is non-existing
}

</script>

로컬 저장소가 비어 있는지 확인하려면 다음 코드를 사용하십시오.

<script type="text/javascript">

// Check if the localStorage object exists
if(localStorage) {

    alert("Am still here, " + localStorage.getItem("your object name")); //put the object name
} else {
    alert("Sorry, i've been deleted ."); //an alert
}

</script>

null을 반환하면 로컬 저장소가 지워집니다.


0

이 코드에서는 삭제하지 않으려는 키 문자열 목록을 제공 한 다음 로컬 저장소의 모든 키에서 해당 키를 필터링 한 다음 다른 키를 삭제합니다.

const allKeys = Object.keys(localStorage);

const toBeDeleted = allKeys.filter(value => {
  return !this.doNotDeleteList.includes(value);
});

toBeDeleted.forEach(value => {
  localStorage.removeItem(value);
});
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.