从 localStorage 中删除:我应该使用 delete 还是 .removeItem?

Posted

技术标签:

【中文标题】从 localStorage 中删除:我应该使用 delete 还是 .removeItem?【英文标题】:Deleting from localStorage: should I use delete or .removeItem? 【发布时间】:2011-10-17 21:38:47 【问题描述】:

我在 Chrome 扩展程序中使用localStorage

delete localStorage[key]window.localStorage.removeItem(key) 之间有什么区别,或者它们的行为相同吗?

请注意,我选择window.localStorage.removeItem(key) 与spec 完全对应,但localStorage.removeItem(key) 可能是它在野外的样子。

【问题讨论】:

不需要指定window,因为这是我按下的原生JS函数。 localStorage 是窗口的属性,不是 JS 的。例如,iframe 将拥有自己的本地存储。换句话说,localStorage 是 html 规范的一部分,而不是 ES 规范的一部分。您不需要指定 window 的原因是它是全局对象。全局对象是 ES 规范的一部分:tc39.github.io/ecma262/#sec-global-object。 【参考方案1】:

Chrome 没有区别,但我建议使用 localStorage.removeItem(key) 以便您养成这样做的习惯。这样,当您在网站中使用 localStorage 时,您已经在使用最有可能与过时浏览器的填充程序和 polyfill 一起使用的方法。

【讨论】:

如果你正在为 localStorage 和 sessionStorage 寻找更漂亮的 API,试试这个:github.com/nbubna/store

以上是关于从 localStorage 中删除:我应该使用 delete 还是 .removeItem?的主要内容,如果未能解决你的问题,请参考以下文章

如何从localStorage集合中删除Backbone模型

LocalStorage,遍历匹配的 ID,从 DOM 中删除

从 Vuejs 中的 localStorage 中删除值

无法删除 localStorage 数组项

一段时间后如何从localStorage中删除一些东西? [复制]

Extjs4 localstorage -- 如何删除所有记录?