0

キーを介してローカル ストレージにアクセスすると、Firefox と Chrome は異なる値を返します。

alert(localStorage.mykey); // FF = null, Chrome = undefined
alert(localStorage.getItem('mykey')); // FF = null, Chrome = null

Firefox のバグlocalStorage/sessionStorage should return undefined (not null) for undefined keys を参照してください。

基本的に、Chrome やその他のブラウザlocalStorage.mykeyは、Firefox が のように扱う他の配列オブジェクトと同じように扱いますgetItem()

だから、私の質問は次のとおりです。この不一致を考えると、キーが localStorage に存在するかどうかを確認する最良の方法は何ですか?

オプション1:if(localStorage.getItem('key') === null)

オプション 2:if(localStorage.key === null || localStorage.key === undefined)

||オプション 3: #2なしで localStorage.key をチェックする方法はありますか?

4

1 に答える 1

1

どのバージョンの Firefox を使用していましたか? この場合、最近のバージョン (私は Firefox 14 を使用してテストしました) が返さundefinedれます。とにかく、簡単なテストはtypeof localStorage.key == "string".

于 2012-11-07T22:15:18.690 に答える