如何将localstorage项设置回null。

时间:2013-03-04 02:04:58

标签: javascript html5 null local-storage

我正在使用系统在网站发生重大更新时提醒用户,我使用LocalStorage,当我制作系统时,我让系统检查提示是否为“null”,然后设置“当他们收到警报时提示“为真”。现在,我想将'tip'localstorage设置为null,并改为使用“tip2”。

我会这样做吗? localStorage.setItem('tip','null');

2 个答案:

答案 0 :(得分:25)

localStorage.removeItem('tip')如果您打算删除密钥

localStorage.setItem('tip', 'null')如果您只想将其设置为字符串“null”

答案 1 :(得分:11)

无法将localStorage项设置为null值。请改用remove。

任何localStorage项都有字符串值,或者它不存在。没有其他类型是可能的,因此也不可能有零变化。

令人困惑的部分是,正如您在示例中所注意到的,如果您调用localStorage.getItem('tip')并且它不存在,您将在调试器中或在尝试显示值时看到空返回值。

尽管不直观,但这并不意味着本地存储项实际存在且值为null。这实际上意味着项目“提示”根本不存在。任何与键'尖'相关的内容都没有任何内部痕迹。

对于确实存在的项目,如果您尝试将项目设置为“返回null”(这是不可能的),那么您应该做的是删除该项目。

在您的示例中,这将导致您再次看到返回值显示为null,就像您第一次调用localStorage.getItem('tip')时一样,即使它不为null,它根本就不存在。为此,您可以按照以下说明删除该项目。

请记住,您需要的只是获取设置删除

localStorage.getItem('tip') //获取项目值
localStorage.setItem('tip','cool stuff') //设置项目值
localStorage.removeItem('tip') //删除项目if (localStorage.getItem('tip') === null) //检查项目是否存在

从技术上讲,@ Michael Theriot的回答是建议将项目提示设置为字符串值“null”。将它设置为“dog”并没有太大的不同,因为它们中的任何一个实际上都不是系统识别的空值。

我猜这不是你的意思,但即使是这样,我也倾向于反对这种做法,因为它会让其他人维护你的代码变得混乱。