前回チェックしたとき、次の2行がtrue
を返しました。
null == localStorage["foo"];
null == localStorage.getItem("foo");
null
をundefined
で置き換える場合も同様です。したがって、最初の質問は、localStorageに対処する2つの方法があるのはなぜですか?そして、なぜ
localStorage["foo"]
undefined
を返します
localStorage.getItem("foo")
null
を返しますか?
JSを開発する際に注意する必要がありますか?
Web Storage Specificationで必要.getItem()
は、不明なキーに対してnull
を返します。
ただし、.getItem()
および.setItem()
は、IDLで、getter
インターフェイスに指定されたsetter
およびStorage
として明確に定義されていることに注意してください。 、したがって、ストレージのコンテンツにアクセスする方法も完全にサポートされています。
ただし、[]
構文は、通常のオブジェクトや配列プロパティゲッターに似ており、これらのように、不明なプロパティ名に対してundefined
を返します。
[]
構文を使用しないnotの理由は、最初にオブジェクトプロパティを操作し、実際のプロパティとメソッドを上書きできるようにするためです。 localStorage
オブジェクトの、cf:
> localStorage['getItem'] = function() { return 0 }
> localStorage.getItem('getItem')
0
localStorage["..."]
はlocalstorageの無効な使用法です。実際のデータベースにアクセスするのではなく、localstorage
オブジェクトのメソッドにアクセスしようとしています。
あなたが使用する必要があります
localStorage.getItem("...")
そして
localStorage.setItem("...")
ストレージデータベースにアクセスするメソッド。
JavaScriptでは、オブジェクト内に存在しないキーのundefined
値を常に取得します。
a = {}; //new object
alert(a["test"]); // you get 'undefined' because "test" keys is not found
LocalStorageで.getItem
は、localStorageオブジェクト内のキーをチェックし、見つからない場合はnull
を返すメソッドです。
Javascriptのせいにしないでください。これはlocalStorageオブジェクトの動作にすぎません。