如何检查是否设置了存储项目?

2020/10/04 18:41 · javascript ·  · 0评论

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

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

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

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

这样你就可以:

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

请参阅以下相关问题:

您可以使用hasOwnProperty方法进行检查

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

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

如果密钥不在存储中,最短的方法是使用默认值:

var sValue = localStorage['my.token'] || ''; /* for strings */
var iValue = localStorage['my.token'] || 0; /* for integers */

如果要检查未定义内容,也可以尝试以下方法:

if (localStorage.user === undefined) {
    localStorage.user = "username";
}

getItem是一种方法,如果找不到值,则返回null。

if(!localStorage.hash) localStorage.hash = "thinkdj";

要么

var secret =  localStorage.hash || 42;

为真

localStorage.infiniteScrollEnabled = 1;

虚假

localStorage.removeItem("infiniteScrollEnabled")

检查存在

if (localStorage[""infiniteScrollEnabled""]) {
  //CODE IF ENABLED
}

您应该在localStorage中检查项目的类型

if(localStorage.token !== null) {
   // this will only work if the token is set in the localStorage
}

if(typeof localStorage.token !== 'undefined') {
  // do something with token
}

if(typeof localStorage.token === 'undefined') {
  // token doesn't exist in the localStorage, maybe set it?
}

如何测试其中的一项存在localStorage此方法适用于Internet Explorer。

<script>
    try{
        localStorage.getItem("username");
    }catch(e){
        alert("we are in catch "+e.print);
    }
</script>
localStorage['root2']=null;

localStorage.getItem("root2") === null //false

也许最好对计划进行扫描?

localStorage['root1']=187;
187
'root1' in localStorage
true

我可以建议的最好和最安全的方式是,

if(Object.prototype.hasOwnProperty.call(localStorage, 'infiniteScrollEnabled')){
    // init variable/set default variable for item
    localStorage.setItem("infiniteScrollEnabled", true);
}

这通过了ESLint的no-prototype-builtins规则。

我已经在我的项目中使用过,并且非常适合我

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

简便的方法是

if(localStorage.test){
console.log("now defined");
}
else{
console.log("undefined");
localStorage.test="defined;"
}

怎么运行的

第一次调用localStorage.test时,它不包含任何存储到localStorage对象中的存储,因此它返回未定义的条件触发器。在其他条件触发之后,我设置了新变量,然后再次检查它是否包含数据,因此如果条件满足,则返回true

试试这个代码

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

} else {

}
本文地址:http://javascript.askforanswer.com/ruhejianchashifoushezhilecunchuxiangmu.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!