1

基本的な数学を使用して、数字を文字列として追加しようとしています。最初にローカルストレージを「0」に設定し、毎回「1」を追加します。私は正しい道を進んでいると感じていますが、これを実行すると結果は 0 + 1 = 1 ではなく、ローカル ストレージに "01" が表示されます。毎回既存のローカル ストレージに 1 を追加できるようにしたいので、0 + 1 で 1 を取得します。次回は 1 + 1 で 2 を取得し、2 + 1 で 3 を取得します。

// sets "points" to 0 when user first loads page.
if (localStorage.getItem("points") === null){
localStorage.setItem("points", "0");
}

// get points
var totalPoints = localStorage.getItem("points");
// add 1 points to exisiting total
var addPoint = totalPoints +"1";
// set new total
localStorage.setItem("points", addPoint);
4

1 に答える 1

1

文字列を数値に変換するには、いくつかの方法があります (完全なリストではありません)。

var n = s * 1; // s is the string
var n = s - 0;
var n = parseFloat(s);
var n = Number(s);
var n = ~~s; // force to 32-bit integer
var n = parseInt(s, 10); // also integer, precise up to 53 bits

ローカル ストレージから文字列を取得するときに文字列を数値に変換し、計算を行ってから結果を戻します。

編集- 覚えておくべきことは+、文字列値のオペランドに対して意味があるため、他の算術演算子よりも「興味深い」ということです。実際、JavaScriptは演算子の文字列解釈を好む+傾向があるため、片側に文字列があり、反対側に数値がある場合、演算は文字列連結であり、算術加算ではありません。

于 2012-06-03T14:43:28.307 に答える