You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何检查localStorage是否存在值,不存在时显示替代消息

问题核心原因

你的代码错误出在首个if分支的判断逻辑不符合JS的类型转换规则:

  • localStorage中存储的所有值都是字符串类型,localStorage.getItem("users") == true 这个判断使用非严格相等==和布尔值比较时,JS会先把true转为数字1,再尝试把读取到的用户名字符串转为数字。除了字符串"1"之外,其余普通用户名、null、空字符串转换后都不等于1,所以第一个if分支的判断几乎永远为false。
  • 如果用户未输入用户名时存储的是空字符串""而非null,你的else if (localStorage.getItem("users") === null) 判断也不会触发,两个分支都不命中的情况下就会出现不符合预期的展示结果。
  • 另外你贴出的代码缺少函数和分支的闭合大括号,会直接抛出语法错误。

修正方案

直接判断读取到的用户名是否为真值即可,null、空字符串都会被判定为假值,走兜底提示分支。修正后的代码如下:

function on() {
    const userName = window.localStorage.getItem('users')
    const overlay = document.getElementById("overlay")
    overlay.style.display = "block"
    if (userName) {
        overlay.innerText = `Congratulations ${userName}! You scored the perfect 10!`
    } else {
        overlay.innerText = "Congratulations! You scored the perfect 10!"
    }
}

这样写还减少了重复的DOM查询和属性赋值逻辑,代码更简洁。

内容的提问来源于stack exchange,提问作者commandoChicken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:09:03