如果您尝试获取不存在的本地存储项目,是否可以为该项目设置默认值?
例如,假设在您的网络应用中,各种 UI 首选项保存在本地存储中。当用户离开您的网站然后返回时,UI 会根据从其本地存储中提取的值进行设置。这很好用。
但是,当用户第一次访问您的网络应用时,这些本地存储值尚不存在。因此,当您的 JavaScript 尝试获取那些本地存储项时,它们都将是未定义的。有没有办法在每个本地存储项目不存在的情况下为其指定默认值?
大多数处理保存键/值对的编程语言都提供某种方式来指定默认值(想想 .ini 配置文件接口(interface))。我期待这样的事情:
var preference = localStorage.getItem('some-key', 'Default Value');
此外,我知道我可以通过测试默认值是否为空/未定义并相应地设置值来轻松地以编程方式设置默认值,但我想看看这是否内置于本地存储键/值对获取和也许我只是没有看到它。如果此功能不存在,我最终只会编写一些添加此功能的基本本地存储包装器函数。
最佳答案
不,没有这样的内置功能。请参阅 Storage
interface 的规范:
interface Storage {
readonly attribute unsigned long length;
DOMString? key(unsigned long index);
getter DOMString getItem(DOMString key);
setter creator void setItem(DOMString key, DOMString value);
deleter void removeItem(DOMString key);
void clear();
};
下面一行只是为了进一步确认:
The
getItem(key)
method must return the current value associated with the given key. If the given key does not exist in the list associated with the object then this method must return null.
您可以使用通常的技术。这样的事情应该没问题:
var preference = localStorage.getItem('some-key') || 'Default Value';
关于html - 为 HTML5 本地存储项目指定默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13791569/