我如何检查一个项目是否设置在localStorage?目前我正在使用

if (!(localStorage.getItem("infiniteScrollEnabled") == true || localStorage.getItem("infiniteScrollEnabled") == false)) {
    // init variable/set default variable for item
    localStorage.setItem("infiniteScrollEnabled", true);
}

当前回答

我在我的项目中使用过,对我来说非常适合

var returnObjName= JSON.parse(localStorage.getItem('ObjName'));
if(returnObjName && Object.keys(returnObjName).length > 0){
   //Exist data in local storage
}else{
  //Non Exist data block
}

其他回答

我总是通过检查localStorage或sessionStorage的长度来检查它们是否被设置

if (sessionStorage.length > 0) {
  console.log("exists")
} else {
  console.log("not exists")
}


WebStorage规范中的getItem方法,如果项不存在,则显式返回null:

... 如果给定的键在与该对象关联的列表中不存在,则该方法必须返回null. ...

所以,你可以:

if (localStorage.getItem("infiniteScrollEnabled") === null) {
  //...
}

请看这个相关问题:

在HTML5 localStorage中存储对象

你可以使用hasOwnProperty方法来检查

> localStorage.setItem('foo', 123)
undefined
> localStorage.hasOwnProperty('foo')
true
> localStorage.hasOwnProperty('bar')
false

适用于当前版本的Chrome(Mac), Firefox(Mac)和Safari。

试试这段代码

if (localStorage.getItem("infiniteScrollEnabled") === null) {

} else {

}

正如@Christian C. Salvadó上面提到的,你可以做到 If (xxx === null){}

但是null也是一个假值,就像这样:

if (null){
console.log ("hello");
}

它不打印“hello”。