2017-05-15 11 views
0

最終行の結果がNaNになる理由を説明できる人はいますか? 'userScore'はspan要素のオブジェクトであり、localStorageパーツを実装していないときも同様の操作が問題なく動作します。事前に多くの感謝!HTML5 Webストレージの整数が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.getItem()を使用して、localstorageから日付を取得します。 –

+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

関連する問題