programing

HTML5 로컬 스토리지:키가 존재하는지 확인하는 중

cafebook 2023. 9. 10. 12:39
반응형

HTML5 로컬 스토리지:키가 존재하는지 확인하는 중

왜 이것이 작동하지 않습니까?

if(typeof(localStorage.getItem("username"))=='undefined'){
    alert('no');
};

사용자를 인덱스 페이지에서 로그인 페이지로 리디렉션하는 것이 목표입니다.여기에localStorage.getItem("username"))변수가 현재 정의되지 않았습니다.

ios 폰갭 앱용입니다.

사양에서 인용:

getItem(key) 메서드는 지정된 키와 연결된 현재 값을 반환해야 합니다.지정된 키가 개체와 연결된 목록에 없으면 이 메서드는 null을 반환해야 합니다.

당신은 실제로 확인해야 합니다.null.

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

이 방법은 제게 효과가 있었습니다.

if ("username" in localStorage) {
    alert('yes');
} else {
    alert('no');
}

업데이트:

if (localStorage.hasOwnProperty("username")) {
    //
}

다른 방법으로, 값이 빈 문자열, null 또는 다른 잘못된 값이 아닐 것으로 예상되는 경우 관련이 있습니다.

if (localStorage["username"]) {
    //
}

MDN 문서는 다음과 같은 방법을 보여줍니다.getItem메소드 구현:

Object.defineProperty(oStorage, "getItem", {
      value: function (sKey) { return sKey ? this[sKey] : null; },
      writable: false,
      configurable: false,
      enumerable: false
    });

값이 설정되지 않으면 반환됩니다.null. 검사 중입니다.undefined. 맞는지 확인합니다.null대신.

if(localStorage.getItem("username") === null){

언급URL : https://stackoverflow.com/questions/16010827/html5-localstorage-checking-if-a-key-exists

반응형