localStorage
に項目が設定されているかどうかをどうやって確認できますか?現在使用しています
if (!(localStorage.getItem("infiniteScrollEnabled") == true || localStorage.getItem("infiniteScrollEnabled") == false)) {
// init variable/set default variable for item
localStorage.setItem("infiniteScrollEnabled", true);
}
これをチェックするためにhasOwnProperty
メソッドを使うことができます
> localStorage.setItem('foo', 123)
undefined
> localStorage.hasOwnProperty('foo')
true
> localStorage.hasOwnProperty('bar')
false
現在のバージョンのChrome(Mac)、Firefox(Mac)、およびSafariで動作します。
最短の方法は、keyがストレージにない場合、デフォルト値を使うことです:
var sValue = localStorage['my.token'] || ''; /* for strings */
var iValue = localStorage['my.token'] || 0; /* for integers */
未定義をチェックしたい場合はこれを試すこともできます。
if (localStorage.user === undefined) {
localStorage.user = "username";
}
getItemは、値が見つからない場合にnullを返すメソッドです。
LocalStorageの項目のtypeを確認してください。
if(localStorage.token !== null) {
// this will only work if the token is set in the localStorage
}
if(typeof localStorage.token !== 'undefined') {
// do something with token
}
if(typeof localStorage.token === 'undefined') {
// token doesn't exist in the localStorage, maybe set it?
}
TRUEの場合
localStorage.infiniteScrollEnabled = 1;
偽りの
localStorage.removeItem("infiniteScrollEnabled")
存在を確認
if (localStorage[""infiniteScrollEnabled""]) {
//CODE IF ENABLED
}
if(!localStorage.hash) localStorage.hash = "thinkdj";
または
var secret = localStorage.hash || 42;
どのようにしてlocalStorage
内の項目の存在をテストできますか?この方法はInternet Explorerで機能します。
<script>
try{
localStorage.getItem("username");
}catch(e){
alert("we are in catch "+e.print);
}
</script>
localStorage['root2']=null;
localStorage.getItem("root2") === null //false
計画をスキャンしたほうがいいでしょうか。
localStorage['root1']=187;
187
'root1' in localStorage
true
私が提案できる最も安全な方法はこれです、
if(Object.prototype.hasOwnProperty.call(localStorage, 'infiniteScrollEnabled')){
// init variable/set default variable for item
localStorage.setItem("infiniteScrollEnabled", true);
}
これはESLintの no-prototype-builtins
ルールを通過します。