0

我正在缓存一个字符串localStorage

 checkLoop:function(){   //function is hit only if internet is connected
 localStorage['key'] = "Some string response from web service";
 //JSON Web service could return null, "" (empty response) too
 }

仅当有 Internet 连接时才会定义此密钥。所以我的功能有可能checkLoop永远不会被击中。即从未定义过localStorage。

后来我检查一下是defined不是null

所以像这样做支票if(!localStorage['key']){..//TODO..}会奏效吗?

或者我需要更多地定制它以获得更好的代码?

4

2 回答 2

1
if(!localStorage['key']){
    // Will enter if the value is null\undefined\false\0\""
}

您可能想改用它:

if(localStorage['key'] == null){
    // only null\undefined.
}

演示

javascript 中的虚假值是:

  • 不明确的
  • 无效的
  • 错误的
  • 0
  • "" - (空字符串)
于 2012-06-24T10:27:32.700 回答
0

利用typeof

if(typeof localStorage['key'] !== 'undefined'){ 
    // Do Something 
}

注意:如果要存储false0值,这很有用。

于 2012-06-24T10:27:45.297 回答