在javascript中清除localStorage?

IT技术 javascript local-storage
2021-01-31 11:07:57

有没有办法在javascript中重置/清除浏览器的localStorage?

6个回答

使用它来清除 localStorage:

localStorage.clear();
@BakedInhalf 是对的,它会一直存在,直到您硬刷新页面。当您清除 localStorage 并在之后立即填充时,它会恢复以前的内容并向您添加新项目。当您清除 localStorage 并进行硬刷新时,它是空的,您可以再次开始填充它。
2021-03-15 11:07:57
@digital-plane 这会清除特定域中的本地存储还是所有存储?
2021-03-26 11:07:57
clear()将从您所在的特定域中删除所有 localStorage 键和值。由于 CORS,Javascript 无法从任何其他域获取 localStorage 值。
2021-03-28 11:07:57
@BakedInhalf 一点也不。也许您的应用程序重新设置了它?
2021-04-05 11:07:57
我在我的应用程序启动时调用 localStorage.clear() ,但即使我关闭浏览器、清除缓存等,数据仍然存在。我知道这一点是因为我在初始化时将模型上的“实例”属性设置为随机数,并且对于给定的 id,实例属性始终相同。
2021-04-12 11:07:57

如果要从用户的本地存储中删除特定的 Item 或变量,可以使用

localStorage.removeItem("name of localStorage variable you want to remove");
嗨,@Ajeet 如果我不想删除特定项目,那么有没有办法做到这一点?例如“removeItemNotIn(key)”、“删除除已定义键之外的所有内容”?提前致谢。
2021-03-20 11:07:57
@learner 所以你想删除除特定键之外的所有键,对吗?为此你可以做这样的事情 var key; for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i); if(key != particularKey){ localStorage.removeItem(key); } }
2021-03-25 11:07:57
嗨,@Shadow 如果我不想删除特定项目,那么有没有办法做到这一点?例如“removeItemNotIn(key)”、“删除除已定义键之外的所有内容”?提前致谢。
2021-03-29 11:07:57
我想出了一个解决我的问题的方法:- if(localStorage.getItem(particularKey) == null){ localStorage.clear(); 但是,如果您有更好的解决方案,请告诉我。谢谢。
2021-04-03 11:07:57
也有可能:取值,清零再设置值,更通用。 let tmp = localStorage.getItem('<your-name>'); localStorage.clear(); localStorage.setItem('<your-name>')
2021-04-05 11:07:57
window.localStorage.clear(); //try this to clear all local storage

这是一个允许您删除所有 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);
    }
  }
};
奇怪的是,这undefined是一个有效的密钥setItemgetItem
2021-03-23 11:07:57
@ebob 是的,它可能看起来很奇怪,但不,真的不是。localStorage 以类似于对象的方式运行,其中键被转换为字符串。例如,使用 undefined 作为这样的键:localStorage.setItem(undefined, 'example Txt!'),实际上会将它存储在调用的键下,'undefined'正如您在运行以下代码时所看到的那样。console.log(localStorage.getItem('undefined')) 将输出example Txt!.
2021-04-02 11:07:57

如果要清除存储在localStorage 中的所有项目,

localStorage.clear();

用于清除所有存储的密钥。

如果您只想清除/删除特定的键/值,那么您可以使用removeItem(key)

localStorage.removeItem('yourKey');