是否有不同的检查未定义的方法?因为我的变量localRetrieved的console.log显示我未定义,但我的IF语句不正确...
Screen.prototype.getModulesPrototype = function() {
var self = this;
console.log('Retrieve modules content from local storage (if present)');
var locallyRetrieved = localStorage.getItem('modulesPrototype');
console.log('locallyRetrieved: '+locallyRetrieved);
if( typeof(locallyRetrieved) =='undefined' || locallyRetrieved == null ) {
console.log('nothing found in localStorage so go online to fetch it');
var remotelyRetrieved = self.getModuleAjax();
localStorage.setItem('modulesPrototype', remotelyRetrieved);
locallyRetrieved = localStorage.getItem('modulesPrototype');
}
答案 0 :(得分:0)
啊,我想我找到了它。
localStorage.getItem()实际上返回一个STRING,表示“未定义”,因此可以正常工作
if ( locallyRetrieved == 'undefined' )
...好奇
答案 1 :(得分:0)
http://underscorejs.org/#isUndefined请参阅此链接以检查未定义的contion
答案 2 :(得分:0)
使用localStorage.getItem()
时,您只需检查响应是否为真。所以你应该能够检查:
if( locallyRetrieved ) {
// do stuff
}
看到这个小提琴:http://jsfiddle.net/3kC3Z/2/
规范指定如果找不到任何内容,getItem
应该返回null:
“如果给定的密钥不存在于与之关联的列表中 对象然后这个方法必须返回null。“
答案 3 :(得分:0)
试试这个
if(locallyRetrieved ==undefined || locallyRetrieved == null ) {
...
}