[javascript] 저장소 항목이 설정되어 있는지 확인하는 방법

항목이 설정되어 있는지 어떻게 확인할 수 localStorage있습니까? 현재 사용하고 있습니다

if (!(localStorage.getItem("infiniteScrollEnabled") == true || localStorage.getItem("infiniteScrollEnabled") == false)) {
    // init variable/set default variable for item
    localStorage.setItem("infiniteScrollEnabled", true);
}



답변

getItemWebStorage 사양 의 메소드 null는 항목이 존재하지 않으면 명시 적으로 리턴 합니다.

… 주어진 키가 객체와 관련된 목록에 없으면이 메서드는 null을 반환해야합니다. …

따라서 다음을 수행 할 수 있습니다.

if (localStorage.getItem("infiniteScrollEnabled") === null) {
  //...
}

이 관련 질문을 참조하십시오 :


답변

hasOwnProperty방법을 사용 하여 이것을 확인할 수 있습니다

> localStorage.setItem('foo', 123)
undefined
> localStorage.hasOwnProperty('foo')
true
> localStorage.hasOwnProperty('bar')
false

Chrome (Mac), Firefox (Mac) 및 Safari의 현재 버전에서 작동합니다.


답변

키가 스토리지에없는 경우 가장 짧은 방법은 기본값을 사용하는 것입니다.

var sValue = localStorage['my.token'] || ''; /* for strings */
var iValue = localStorage['my.token'] || 0; /* for integers */


답변

undefined를 확인하려면 다음을 시도하십시오.

if (localStorage.user === undefined) {
    localStorage.user = "username";
}

getItem은 값을 찾지 못하면 null을 반환하는 메서드입니다.


답변

if(!localStorage.hash) localStorage.hash = "thinkdj";

또는

var secret =  localStorage.hash || 42;


답변

localStorage.infiniteScrollEnabled = 1;

거짓

localStorage.removeItem("infiniteScrollEnabled")

존재 확인

if (localStorage[""infiniteScrollEnabled""]) {
  //CODE IF ENABLED
}


답변

localStorage에서 항목 유형 을 확인해야합니다.

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?
}