2014-12-17 3 views
0

자바 스크립트가 실제로 내 머리를 도청하고 있습니다. 처음에 나는이 코드를 사용했다 :JS - 문자열과 int 변수 사이의 혼동

var val = document.getElementById("inputField").value; // User entered "2" 
while (val < 5) 
{ 
    val += 1 
    alert(val); 
} 

을하지만 while 루프에 들어가기 전에에서는 parseInt를 사용하지 않는 한 5 + 1 = 51 할 것입니다. 즉 val은 숫자가 아닙니다. 그러나 while 루프에 들어갈 때 val을 숫자로 간주하면 아무런 문제가 없습니다. 표현식 (val < 5). 왜 그렇습니까? 네가 "그게 그 길이야"라고 말하지 않으면, 나에게 비논리적 인 것처럼 보인다. 는

문제는 여기에 2에서

+0

이 될 것입니다. jquery ....를 사용하는 것이 좋습니다. –

답변

0

나중에는 문자 또는 하나 개의 charcter의 문자열로 5를 이해하면서 var x = 5이 숫자로 전 undersands으로 var x = "5" (5)과 다른 것을 프로그래밍 세계에서 분명 온다 타이 소스

번호 1 는 숫자 값 (이 형식 번호 인 경우에도)

,691 값 속성의 텍스트 문자를 허용하는 HTML 제어 입력에 의한 있다는

2 번 : "+"연산자는 숫자와 텍스트 피연산자를 모두 허용합니까? 여기서 5 + 1은 6이됩니다. "5" + "1"은 "51"이됩니다. 그래서 "51"

에서 또한 "5"+1 결과, 자바 스크립트는 입력 된 값은 텍스트와 번호와 같은 유효 플러스 작업은 다른 기호가 없기 때문에 텍스트로 취급하므로 두 가지 유형의 작업을보고는 숫자

임을 표시 당신은 '+' '*'피연산자로 텍스트를 사용하지 않는과를 교체 할 경우

, 당신은 "5" * 5 = 25

다음

JS는 숫자로 텍스트에 곱셈을 적용하려고 예상 된 결과를 얻을 것이다 그것은 을 succeded 그러나 경우 본문은 숫자로 된 단초가 아니었다. "x"라고 말하면 "x" * 5NaN