3

如果没有 localStorage 键值,我试图隐藏我的 div。

通过下面的行,我仅在 localStorage 键完全删除时隐藏了一个 div,但如果 localStorage键根本没有任何值,则需要做同样的事情只是 []。

 window.localStorage.getItem('items') === null

它将如何执行?

4

3 回答 3

8

OR您可以使用运算符添加所需的条件||

var items = window.localStorage.getItem('items')

if (items === null || items.length === 0)
{
    // items is null, [] or '' (empty string)
}

如果您还必须检查undefined某个地方,您可以更改=== null== null扩展类似这样的额外条件

if (items === undefined || items === null || items.length === 0)
{
    // items is undefined, null, [] or '' (empty string)
}

编辑:这是您可以直接获取数组的方法

var items = JSON.parse(window.localStorage.getItem('items'))

if (items === null || items.length === 0)
{
    // items is null or []
}
于 2013-07-26T12:22:20.430 回答
3

简单地说:

if (!localStorage.nameOfYourLocalStorage) {
    // do the following if the localStorage.nameOfYourLocalStorage does not exist
}

它如何有用的一个例子:

if (!localStorage.nameOfYourLocalStorage) {
    localStorage.nameOfYourLocalStorage = defaultValue;
}

此处脚本将检查 localStorage 名称是否不存在,如果不存在,它将使用默认值创建它。

如果您希望它在它确实存在时起作用,您可以在 if 块之后添加else以继续,或删除 ' ' 来自if 块条件。

于 2014-07-27T23:42:41.703 回答
1
Storage.prototype.has = function(key) {
  return (key in this && !(key in Storage.prototype));
};
于 2016-02-20T01:04:48.973 回答