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
 }

このキーは、インターネット接続がある場合にのみ定義されます。そのため、私の機能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の偽の値は次のとおりです。

  • 未定義
  • ヌル
  • false
  • 0
  • ""-(空の文字列)
于 2012-06-24T10:27:32.700 に答える
0

使用するtypeof

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

注:falseこれは、値を保存する場合に便利です0

于 2012-06-24T10:27:45.297 に答える