Javascript 检查本地存储值是否存在

Javascript 检查本地存储值是否存在,javascript,sencha-touch,extjs,local-storage,Javascript,Sencha Touch,Extjs,Local Storage,可能重复: 我正在使用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) 我得到: Unc

可能重复:

我正在使用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 
看看这个例子。localStore.getItemname。注意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:UncaughtTypeError:Object[Object Object Object]没有方法“getItem”啊,我明白了。我想我误解了这个问题。因此,只有在第一次尝试时,它才是未定义的。如果是这样,我会尝试在使用localStore.getItem=='function'之前查看它是否已定义。感谢您的帮助,我发现如果不存在数据,localStore.data.length为0,如果存在数据,则>0。我想我会用这个…真的吗?我认为这是有区别的,因为我想使用sencha touch的函数,而不是本机javascript函数……不管怎样,这里的问题是,您要做两件不同的事情。在第一种情况下,localStore.getAt0.data.name1访问存储的第一条记录的数据,然后访问该记录的“name1”属性,这很有意义。但是localStore.data.name1您试图直接访问存储区的数据,但该属性不存在。因此,localStore.data.name1返回未定义。