4

私はlocalstorageに関するDiveIntoHTML 5チュートリアルに取り組んでおり、次のコードに出くわしました。

function supports_html5_storage() {
  try {
return 'localStorage' in window && window['localStorage'] !== null;
  } catch (e) {
return false;
  }
}

、などについての部分はreturn 'localStorage' in window理解していますが、なぜここでtrycatchステートメントが必要なのか理解できません。以下を書くだけで十分ではありませんか?

function supports_html5_storage(){
return 'localStorage' in window && window['localStorage']!==null;
}

ちなみに、try / catchの目的は知っていますが、どのような例外が予想されるのでしょうか。

4

1 に答える 1

7

ブラウザがHTML5ストレージをサポートしている場合、グローバルウィンドウオブジェクトにlocalStorageプロパティがあります。ブラウザがHTML5ストレージをサポートしていない場合、localStorageプロパティは未定義になります。古いバージョンのFirefoxの不幸なバグのため、Cookieが無効になっている場合、このテストでは例外が発生するため、テスト全体がtry..catchステートメントでラップされます。

上記のテキストのコピー元:http://diveintohtml5.info/detect.html#storage

于 2013-01-04T09:36:03.740 に答える