我正在使用系统在网站发生重大更新时提醒用户,我使用LocalStorage,当我制作系统时,我让系统检查提示是否为“null”,然后设置“当他们收到警报时提示“为真”。现在,我想将'tip'localstorage设置为null,并改为使用“tip2”。
我会这样做吗? localStorage.setItem('tip','null');
答案 0 :(得分:25)
localStorage.removeItem('tip')
如果您打算删除密钥
localStorage.setItem('tip', 'null')
如果您只想将其设置为字符串“null”
答案 1 :(得分:11)
任何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”并没有太大的不同,因为它们中的任何一个实际上都不是系统识别的空值。
我猜这不是你的意思,但即使是这样,我也倾向于反对这种做法,因为它会让其他人维护你的代码变得混乱。