检查本地存储值是不是存在[重复]

Posted

技术标签:

【中文标题】检查本地存储值是不是存在[重复]【英文标题】:Check if localstorage value exists [duplicate]检查本地存储值是否存在[重复] 【发布时间】:2012-10-13 12:21:32 【问题描述】:

可能重复:html5 localStorage: check if item isset

我正在使用 localStorage 开发 Sencha Touch 2 应用程序。

我像这样从本地存储中获取值:

var localStore = Ext.getStore('localStore');
localStore.getAt(0).data.name1 //get the value for key 'name1'

但是在第一次访问时本地存储是空的。如何检查密钥是否存在? 当我这样做时:

if(localStore.data.name1 === null)

我明白了:

Uncaught TypeError: Cannot read property 'name1' of undefined 

【问题讨论】:

真的吗? bennadel.com/blog/… 我觉得还是有区别的,因为我想用的是sencha touch的功能,而不是原生的javascript函数... 无论如何,这里的问题是你做了两件不同的事情。在第一种情况下(localStore.getAt(0).data.name1),您访问的是存储的第一条记录的数据,然后是该记录的“name1”属性,这是有意义的。但是然后 (localStore.data.name1) 您尝试直接访问商店的数据并且此属性不存在。因此 localStore.data.name1 返回 undefined。 【参考方案1】:

请参阅此 jsFiddle 示例。 localStore.getItem(名称)。注意 getItem 是一个函数。

var obj = foo: 'bar';

// set
localStorage.setItem('testObject', JSON.stringify(obj));

// get
var get = localStorage.getItem('testObject');

console.log(JSON.parse(get));

​ ​

【讨论】:

当我尝试这个时,我总是得到一个空值。什么是本地存储?我的 localStore 是一个 sencha touch 本地存储代理,没有方法 getItem: Uncaught TypeError: Object [object Object] has no method 'getItem' 啊,我明白了。我想我误解了这个问题。所以只有在第一次尝试时它是未定义的。如果是这样,我会尝试 if (typeof localStorage.getItem === 'function') 在使用它之前查看它是否已定义。 感谢您的帮助,我发现如果不存在数据,localStore.data.length 为 0,如果存在数据,则 >0。我想我会用那个...

以上是关于检查本地存储值是不是存在[重复]的主要内容,如果未能解决你的问题,请参考以下文章

IOS / Objective-C:测试图像是不是存在[重复]

Javascript本地存储条件没有响应[重复]

如果没有值,HTML5 本地存储对象会返回啥? [关闭]

检查本地数据存储是不是为空

本地存储不存储值。仅存储 [object MouseEvent]

HTML5本地存储数据是不是按域分隔存储[重复]