HTML5 LocalStorage:检查密钥是否存在
为什么这不起作用?
if(typeof(localStorage.getItem("username"))=='undefined'){ alert('no'); };
目标是将用户从索引页面redirect到login页面(如果尚未logging)。 这里localStorage.getItem("username"))
variables暂时没有定义。
这是一个iOS手机应用程序。
从规格引用:
getItem(key)方法必须返回与给定键相关的当前值。 如果给定的键不存在于与该对象相关联的列表中,则该方法必须返回null。
你应该实际检查null
。
if (localStorage.getItem("username") === null) { //... }
这个方法适用于我:
if("username" in localStorage){ alert('yes'); } else { alert('no'); }
MDN文档显示了如何实现getItem
方法:
Object.defineProperty(oStorage, "getItem", { value: function (sKey) { return sKey ? this[sKey] : null; }, writable: false, configurable: false, enumerable: false });
如果该值未设置,则返回null
。 您正在testing以查看它是否undefined
。 检查它是否为null
。
if(localStorage.getItem("username") === null){
另一种方法是:
if (localStorage["username"]) { // }