【问题标题】:How to set localstorage item back to null.如何将本地存储项设置回 null。
【发布时间】:2013-02-18 01:30:59
【问题描述】:

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

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

【问题讨论】:

    标签: javascript html null local-storage


    【解决方案1】:

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

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

    【讨论】:

    • localStorage.tip = 'null'
    • 如果我需要在我的网站的另一部分检查此 localStorage.removeItem('tip') 是否有效:if(tip==null){
    • 你应该使用localStorage.getItem('tip') === null来检查它是否存在。
    • @williamle8300 您可以使用 localStorage 通过转换为 JSON 来存储任何类型的可序列化数据,但它最终只是字符串的键值存储。另外,JSON.parse(null) === null.
    • @MichaelTheriot 是的,我同意这是风格问题。尽管有任何 JSON 概念不是 localStorage 规范的一部分,但在我看来,它是一种 Web 技术,所以我一直强制执行此操作以从 localStorage 获取/设置:1) localStorage.setItem(key, JSON.stringify(value)) 2) JSON.parse(localStorage.getItem(key))。这只是我的观点,你可能是对的,我不应该强加这一点,但我认为值得一提。
    【解决方案2】:

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

    任何 localStorage 项目要么具有字符串值,要么不存在。没有其他类型是可能的,因此 null 的变化也不可能。

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

    虽然不直观,但这并不意味着本地存储项实际上存在值为 null。这实际上意味着项目“提示”根本不存在。甚至没有任何与关键“提示”相关的任何内部痕迹。

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

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

    请记住,您只需要 getsetremove

    localStorage.getItem('tip')                            // 获取项目值
    localStorage.setItem('tip','cool stuff')     // 设置项目值
    localStorage.removeItem('tip')                       // 删除项目
    @98765432@4

    从技术上讲,@Michael Theriot 的回答是建议将项目提示设置为字符串值“null”。这与将其设置为“dog”没有太大区别,因为它们都不是系统识别的空值。

    我猜这不是你的意思,但即使是这样,我也倾向于反对这种做法,因为它可能会让维护你的代码的其他人感到困惑。

    【讨论】:

      猜你喜欢
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      相关资源
      最近更新 更多