>웹 프론트엔드 >JS 튜토리얼 >javascript_기본지식에서 parsInt를 활용하는 팁

javascript_기본지식에서 parsInt를 활용하는 팁

WBOY
WBOY원래의
2016-05-16 18:47:141082검색

양식에 작성된 날짜 형식에 대해 클라이언트 측 확인을 수행하고 싶어서 인터넷에서 구문 분석을 사용하여 연도, 월, 일을 판단하는 코드를 발견했습니다.

....

else if(parseInt(month)12)

......

그러나 현재 정확한 날짜는 여기서는 전달할 수 없습니다. 나중에 parsInt에 실제로 두 개의 매개변수가 있다는 것을 확인한 후 알게 되었습니다. 첫 번째는 변환할 값이고 두 번째는 지정된 기본입니다. 두 번째 매개변수가 지정되지 않으면 01에서 07까지만 올바르게 변환할 수 있습니다(즉, 1에서 7로 변환). 08부터 시작하면 "0으로 시작하는 숫자는 8진수입니다"라는 규칙에 따라 변환됩니다. ! 지금이 9월인데 임의로 선택한 날짜가 이런 문제를 노출시켰습니다. 상반기에 이 작업을 했다면 BUG를 남겼을 것이고 그 다음 고객은 하반기까지 기다리게 될 것입니다. 날짜를 입력할 수 없다고 말하더군요.

따라서 함수에서 parseInt가 사용될 때마다 소수점을 나타내기 위해 두 번째 매개변수가 추가됩니다. 예를 들어 위 문장을 다음과 같이 변경합니다.

......

else if(parseInt(month,10)12)

... ..


이전에 문자열을 숫자로 변환하기 위해 JavaScript에서 parsInt 함수를 여러 번 접한 적이 있어서 이전에도 여러 번 이 문제에 직면했기 때문에 비교를 위해 다른 방법으로 전환했습니다.
캘린더 물건을 받으러 페이지에 가서 비교를 위해 숫자로 변환하면


var num =을 사용하면 항상 문제가 발생합니다. parsInt(01);
var num = parseInt(01);
...
var num = parsInt(07)
var num =parsInt(08); parseInt(09);
var num = parseInt(10);

위 변환을 수행했을 때
parseInt()에서 1~7까지 전달된 매개변수에는 문제가 없습니다. , 그런데,parseInt(08)를 사용했을 때 변환된 num=0에 문제가 있었습니다

프로젝트의 긴급성 때문에 자세히 조사하지 못했습니다
시간이 나니,

JavaScript API에 대한 설명은 다음과 같습니다.
parseInt 메소드
는 문자열에서 변환된 정수를 반환합니다.
parseInt(numString, [radix])
매개변수
numString
필수입니다. 숫자로 변환할 문자열입니다.
기수
선택사항. numString이 보유한 숫자의 밑수를 나타내는 2에서 36 사이의 값입니다. 제공되지 않으면 '0x' 접두사가 붙은 문자열은 16진수로 처리되고, '0' 접두사가 붙은 문자열은 8진수로 처리됩니다. 다른 모든 문자열은 10진수로 처리됩니다.

위 API를 읽어보니 제가 전송한 매개변수가 01~08일 때 매개변수가 '0'으로 시작해서 8진수로 변환된 것을 알게 되었습니다. 그리고 8진수는 0부터 7까지만 표현할 수 있기 때문에 내 매개변수가 01부터 07일 때 변환이 정확하고 08일 때 전달되어 0으로 변환됩니다. 그리고parseInt(10)는 10으로 올바르게 변환할 수 있습니다

따라서 마지막 매개변수를 생략하지 않는 것이 규칙입니다.

parseInt(08,10);를 사용하여 올바르게 변환하세요.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.