我正在研究the Dive Into HTML 5 Tutorial on localstorage,并遇到了这段代码:
function supports_html5_storage() {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch (e) {
return false;
}
}
我理解关于return 'localStorage' in window
等的部分,但我不明白为什么需要在这里尝试catch语句?仅仅写下面的内容还不够吗?
function supports_html5_storage(){
return 'localStorage' in window && window['localStorage']!==null;
}
顺便说一句:我(有点)知道try / catch的目的,我只是想知道我们可能期待什么样的异常?
答案 0 :(得分:5)
如果您的浏览器支持HTML5存储,则会有localStorage 全局窗口对象上的属性。如果您的浏览器不支持 HTML5存储,localStorage属性将是未定义的。由于一个 在旧版本的Firefox中不幸的错误,这个测试将提出一个 如果禁用cookie,则异常,因此整个测试都包含在 try..catch statement。