2012-06-03 2 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-integers-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 ~ 연산자는 비트 부정 연산자입니다. 한 번 문자열에 적용하면 숫자 (정수)로 해석되고 결과는 해당 값의 "1의 보수"가됩니다. 두 개의 연산자를 사용하면 원래의 정수 값을 다시 얻을 수 있습니다. – Pointy

+0

'- (- s)'도 사용할 수 있습니까? – Mageek

관련 문제