我在diveintohtml5网站上看到了这个。这是他们检查浏览器是否支持localstorage的方式。
return 'localStorage' in window && window['localStorage'] !== null;
这与刚刚做的一样吗?
return window.localStorage != undefined
答案 0 :(得分:8)
<强> 1 强>
return 'localStorage' in window && window['localStorage'] !== null;
如果window
对象包含名称为localStorage
的属性且该属性的值不是null
,则返回true。
<强> 2 强>
return window.localStorage != undefined
如果window
对象包含名称为localStorage
的属性且该属性的值不是undefined
或null
,则返回true
(我假设全局属性undefined
包含值undefined
)
答案 1 :(得分:5)
相同结果无论如何,因为如果window.localStorage
为undefined
,您将获得false
。如果window.localStorage
为空,您将获得false
,因为undefined == null
。
但是,我更喜欢使用!!
,因为它是转换为布尔值的最快方式,如果它是false,null,undefined,',NaN或0,localStorage有用吗?
return !!window.localStorage;
修改强>
一个警告,它们并不完全相同,因为如果您将window.localStorage
设置为undefined
,则第一个会将其报告为true
答案 2 :(得分:1)
您可以使用Modernizr(1.1或更高版本)来检测对HTML5本地存储的支持。
if (Modernizr.localstorage) {
// window.localStorage is available
} else {
// no support for local storage
}
答案 3 :(得分:0)
我希望您推荐以下功能:
function getLocalStorage(){
if (typeof localStorage == “object”){
return localStorage;
} else if (typeof globalStorage == “object”){
return globalStorage[location.host];
} else {
throw new Error(“Local storage not available.”);
}
}
如果您想了解全局存储,请将其与本地存储进行比较,查看“适用于Web开发人员的JavaScript”,第19章。它描述了客户端本地存储,并将其与Cookie进行比较。