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

如何实现:若localStorage存在wallSize则赋值给bathroomLength,否则保持原值?

解决方案

这里有几种实用的写法可以实现你的需求,我会逐个拆解说明:

写法一:直观的条件判断(新手友好)

这是最容易理解的方式,直接检查localStorage里是否存在目标键:

var bathroomLength = 'initial';
// 检查wallSize是否存在且不为空值
if (localStorage.getItem('wallSize')) {
  bathroomLength = localStorage.getItem('wallSize');
}

解释:localStorage.getItem()找不到对应键时会返回null,而null在条件判断中属于假值,所以只有当wallSize存在且值为有效内容时,才会覆盖bathroomLength的初始值。

写法二:逻辑或运算符(一行简洁版)

利用JS的逻辑或特性,用一行代码搞定赋值:

var bathroomLength = localStorage.getItem('wallSize') || 'initial';

解释:逻辑或||会返回第一个「真值」。如果localStorage里的wallSize是有效内容(非空字符串、非null等),就用这个值;否则直接用默认的'initial'。
⚠️ 注意:如果你的业务场景中wallSize可能出现空字符串""、数字0这类「假值」,这种写法会把它们当成「不存在」,直接使用默认值。如果需要保留这类值,建议用第一种写法。

写法三:空值合并运算符(ES2020+ 严谨版)

如果你的项目环境支持ES2020及以上语法,可以用更精准的空值合并运算符??:

var bathroomLength = localStorage.getItem('wallSize') ?? 'initial';

解释:和逻辑或不同,??只会在左侧是null或undefined时才返回右侧值。哪怕wallSize的值是空字符串""或者数字0,只要它存在(不是null/undefined),就会被赋值给bathroomLength,在需要保留特殊假值的场景下更靠谱。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:27:26