2012-06-03 31 views
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); 
+2

@Pointy localstorage只接受一個字符串 –

+0

是的,我想出了:-)對不起 – Pointy

+0

可能重複[如何將字符串轉換爲JavaScript中的整數?](http://stackoverflow.com/questions/1133770)/how-do-i-convert-a-string-into-an-integer-in-javascript) –

回答

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往往傾向於傾向於字符串解釋+運算符,所以如果一邊有字符串而另一邊有數字,則該操作是字符串連接而不是算術加法。

+0

你能解釋一下'~~ s'的工作原理嗎? – Mageek

+1

@Mageek〜運算符是按位否定運算符。將它應用一次到一個字符串會強制它被解釋爲一個數字(一個整數),結果就是該值的「補碼」。使用兩個運算符可以返回原始整數值。 – Pointy

+0

我們可以使用' - ( - s)'嗎? – Mageek