为什么这不起作用?
if(typeof(localStorage.getItem("username"))=='undefined'){
alert('no');
};
目标是将用户从索引页面重定向到登录页面(如果尚未记录)。
目前尚未定义localStorage.getItem("username"))
变量。
这是ios phonegap应用程序。
答案 0 :(得分:252)
getItem(key)方法必须返回与给定键关联的当前值。如果与对象关联的列表中不存在给定键,则此方法必须返回null。
您应该实际检查null
。
if (localStorage.getItem("username") === null) {
//...
}
答案 1 :(得分:31)
这种方法对我有用:
if ("username" in localStorage) {
alert('yes');
} else {
alert('no');
}
答案 2 :(得分:15)
<强>更新强>
if (localStorage.hasOwnProperty("username")) {
//
}
另一种方式,当值不是空字符串,null或任何其他虚假值时相关:
if (localStorage["username"]) {
//
}
答案 3 :(得分:13)
MDN documentation显示了getItem
方法的实现方式:
Object.defineProperty(oStorage, "getItem", {
value: function (sKey) { return sKey ? this[sKey] : null; },
writable: false,
configurable: false,
enumerable: false
});
如果未设置该值,则返回null
。您正在测试它是否为undefined
。检查一下是否null
。
if(localStorage.getItem("username") === null){