2017-05-15 9 views
0

마지막 줄 결과가 NaN으로 나타나는 이유는 누구나 설명 할 수 있습니까? 'userScore'는 span 요소의 객체이며 localStorage 부분을 구현하지 않으면 비슷한 작업이 완벽하게 작동합니다. 미리 많은 감사드립니다!HTML5 웹 저장소 정수가 NaN이됩니다

var score; 
    score = 20 - (parseInt(turnNr.innerHTML) - bricks.length/2) * 
    1.2; 
    if (score >= 0.5) { 
     score = Math.round(score); 
    } else { 
     score = 0; 
    } 

    if (localStorage.totalScore) { 
     localStorage.totalScore = parseInt(localStorage.totalScore) + 
     score; 
    } else { 
     localStorage.totalScore = score; 
    } 
    userScore.innerHTML = localStorage.totalScore; 
+2

에 코드를 변경하고 싶을 것이다

. [문서 읽기] (https://developer.mozilla.org/en-US/docs/Web/API/Storage). –

+0

localstorage에서 날짜를 검색하려면 localStorage.getItem()을 사용하십시오. –

+0

그래서'parseInt (localStorage.totalScore)'는'NaN'을 산출합니까? 어떤 디버깅을 했습니까? 변수에는 어떤 값이 있습니까? – Bergi

답변

0

코드에서 오류를 복구 할 수 없습니다. localStorage에 "NaN"을 저장하면 코드가 실행될 때 절대로 사라지지 않습니다. 유효하지 않은 값이 있어도 if (localStorage.totalScore)이 실행되기 때문입니다. 당신은 저장 장치가 작동하지 어떻게 지역의

if (parseInt(localStorage.totalScore)) { // NaN is falsy and will be ignored 
    localStorage.totalScore = parseInt(localStorage.totalScore) + score; 
} else { 
    localStorage.totalScore = score; 
} 
userScore.innerHTML = localStorage.totalScore; 
+0

아, 알겠습니다, 그게 다야! 테스트를 거쳤고 완벽하게 작동했습니다! 많은 감사 친구! – Cerdarius

+0

@Cerdarius 제발 [대답에 동의하십시오] (http://stackoverflow.com/help/someone-answers) – Bergi