我正在使用系统在站点发生重大更新时提醒用户,并且我使用 LocalStorage 来执行此操作,当我制作系统时,我让系统检查提示是否为“null”,然后将“提示”设置为当他们收到警报时是真的。现在,我想将“tip”本地存储设置回 null,并改用“tip2”。
我会这样做吗?localStorage.setItem('tip', 'null');
我正在使用系统在站点发生重大更新时提醒用户,并且我使用 LocalStorage 来执行此操作,当我制作系统时,我让系统检查提示是否为“null”,然后将“提示”设置为当他们收到警报时是真的。现在,我想将“tip”本地存储设置回 null,并改用“tip2”。
我会这样做吗?localStorage.setItem('tip', 'null');
localStorage.removeItem('tip')
如果您打算删除密钥
localStorage.setItem('tip', 'null')
如果您只想将其设置为字符串“null”
任何 localStorage 项目要么具有字符串值,要么不存在。没有其他类型是可能的,因此 null 的变化也不可能。
令人困惑的部分是,正如您在示例中注意到的那样,如果您调用 localStorage.getItem('tip') 并且它不存在,您将在调试器中或尝试显示该值时看到 null 返回值。
尽管这很不直观,但这并不意味着本地存储项实际上存在值为 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”没有太大区别,因为它们中的任何一个都不是系统识别的空值。
我猜这不是你的意思,但即使是这样,我也会倾向于反对这种做法,因为它可能会让维护你的代码的其他人感到困惑。