>  기사  >  웹 프론트엔드  >  js_Basic 지식 중 ParseInt 함수에 대한 간략한 토론

js_Basic 지식 중 ParseInt 함수에 대한 간략한 토론

WBOY
WBOY원래의
2016-05-16 17:27:42889검색

매우 인기 있는 구문 분석기("09")==0부터 시작해 보겠습니다.
parseInt(number,type) 이 함수 뒤에 기수를 나타내는 두 번째 매개변수가 없으면 기본값은 10진수입니다.
예를 들어,parseInt("010",10)은 10진수 결과: 10,
parseInt("010",2)는 2진수 결과: 2,
parseInt("010",8) 8진수 시스템의 결과: 8,
parseInt("010",16)는 2진수 시스템: 16의 결과입니다.

아래에서 설명하겠습니다. 기본 단위가 지정되지 않은 경우 기본값은 10진수입니다. 그러나 내부 숫자가 0으로 시작하면 8진수로 간주됩니다. 16이 되어야 합니다. 16진수입니다.
parseInt("10")==>parseInt("010",10)===>10parseInt("010")==>parseInt("010",8)==>8parseInt( "0x10")==>parseInt("010",16)==>16.

여기에서는 매우 원활하게 진행되었습니다.
예를 들어 숫자가 우리가 제공한 일반적인 숫자가 아닌 경우 어떻게 설명할 수 있습니까? 일부 정보를 확인한 후 다음과 같이 말합니다.
parseInt(Number) 중간에 있는 숫자가 숫자(0~9)가 아닌 값을 만나면 구문 분석이 중단되고 그 이전 값만 반환됩니다. 계산에는 숫자가 사용되지 않습니다. 예를 들어, parsInt("100")===》parseInt("100",10)==>100과 동등한parseInt("100x") 및parseInt(" 0100x")===>parseInt("0100 ")===>parseInt("100",8)===>64.
여기서 우리가 간과한 것 중 하나는 x 16진수입니다. x도 무시되었습니다. 시도해 본 후, 이 특별한 처리 하에서
예를 들어,parseInt("0x10")===>parseInt("10",16)===>16이 상위 결과와 일치한다는 것을 발견했습니다. 방금 말한 것은 문자가 자동으로 구문 분석되지 않으면 규칙에 어긋나는 parsInt("0")로 이해해야 한다는 것입니다.

여기서 주의할 점은 parInt의 숫자가 이렇습니다. 첫 번째 숫자가 0이 아니고 문자가 아니면 모든 것이 10진수로 간주되어 다음과 같은 경우에는 중지됩니다. 편지를 만난다. 첫 번째가 0이면 다음 항목에 주의해야 합니다. 숫자가 아닌 경우 구문 분석을 중지하려면 위에서 언급한 규칙을 따르세요. 예를 들어,parseInt("0xt")==>parseInt("0x")==>parseInt("",16)은 NaN입니다.

요약하자면,parseInt(Number)의 값: 첫 번째 숫자가 0이 아니면 문자를 만나면 구문 분석을 중지하고, 첫 번째 숫자이면 문자 앞의 값을 소수로 구문 분석합니다. 숫자가 문자이면 값 It은 비어 있고 비어 있으면 NaN이 됩니다.
예:parseInt("a")==>parseInt("",10)==>NaN.parseInt("10a ")==>parseInt("10 ")==>parseInt("10",10)==>10;
첫 번째 숫자가 0이고 두 번째 숫자가 0이 아닌 경우 이전 값을 구문 분석합니다. 8진수로, 예를 들어:parseInt("0a")==>parseInt("0")==>parseInt("0",10)==>0.PS: 이것은 약간 특별합니다. 왜냐하면 0a 0으로 파싱되며, 8진법이라고 볼 수 있는 구조는 아니다. 다음은 당연하다.
parseInt("010a")==>parseInt("010")==>parseInt("10",8)==>8;첫 번째 숫자가 0이고 두 번째 숫자가 x인 경우 그러면 , 위와 같이 문자가 발견되면 구문 분석을 중지하고 문자 앞의 값을 16진수로 구문 분석합니다(예:parseInt("0xt")==>parseInt("",16)==>NaN ). parseInt("0x12t")==>parseInt("12",16)==>18.

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