>  기사  >  웹 프론트엔드  >  javascript parseInt() function_javascript 기술의 16진수 변환 세부 사항에 주의하십시오.

javascript parseInt() function_javascript 기술의 16진수 변환 세부 사항에 주의하십시오.

WBOY
WBOY원래의
2016-05-16 17:44:131372검색

parsInt(string, radix)에는 2개의 매개변수가 있습니다. 첫 번째 문자열은 전달된 값이고, 두 번째 radix는 전달된 값의 밑입니다. 기본값은 10입니다. 다양한 밑의 숫자는 무시할 수 있습니다. 10진수 정수로 변환됩니다(정수가 아닌 경우 반내림).

radix의 값 범위는 ​​2~36입니다. radix가 ​​1이거나 radix>36인 경우 변환 결과는 NaN이 되며, radix가 ​​0이거나 다른 값은 무시됩니다. , 기수 기본값은 10입니다.

이 함수를 사용하려면 첫 번째 매개변수가 문자열이어야 합니다. 문자열이 아닌 경우 문자열로 변환됩니다. 또한 변환 전에 문자열 매개변수의 왼쪽은 사용된 문자 집합을 따릅니다. 기본 번호로 변환하기 위해 문자가 잘립니다.
문자열 매개변수의 시작과 끝 부분에 있는 공백은 무시됩니다.


코드 복사

코드는 다음과 같습니다. 010 --> 8 //0으로 시작, 8진수 number8 -- > '8' parseInt('8') //기수를 무시하고 전달된 첫 번째 매개변수는 10진수로 인식됩니다.




코드 복사
코드는 다음과 같습니다. parseInt(0x10) //parseInt(16)는 10진수 16을 얻습니다 parseInt(010,16) / /parseInt('8',16), get 8 parseInt(010,7) //parseInt('8',7), 8은 16진수에 사용되는 문자 범위를 초과하고 는 버려지고 변환 결과는 NaN입니다.
parseInt(0x10,8) //parseInt('16',8)는 14를 얻습니다.
parseInt(0x13,8) //parseInt('19',8) 문자 9가 사용된 8진수를 초과합니다. 문자 범위는 삭제되고 변환 결과는 1입니다.

첫 번째 매개변수가 문자열에 직접 전달되고 기수가 무시되는 경우:
문자열은 다음으로 시작합니다. 0이고 기본적으로 8진수로 인식됩니다(IE 9는 10진수로 인식하고, IE 6~8은 8진수로 인식합니다)
문자열은 0x로 시작하며 기본적으로 16진수로 인식됩니다
그렇지 않으면 10진수로 인식됩니다.




코드 복사
코드는 다음과 같습니다. parseInt('010') //8 ,ie9는 10을 얻습니다 parseInt(' 018') //1,ie9는 18을 얻습니다 parseInt('017') //15, ,ie9는 15를 얻습니다
parseInt('010',8) // 8진수로 직접 인식하면 변환 결과는 8
parseInt('010',7) //16진수로 직접 인식하면 변환 결과는 7
parseInt('010',16) //16진수로 직접 인식됨 , 변환 결과는 16
parseInt ('0x10') //16
parseInt('0x1g') //1
parseInt('0x1f') //31
parseInt('0x10' ,8) //8자리 체계로 문자를 직접 인식합니다. 16진수의 표현 형식은 16진수로 올바르게 인식됩니다. 변환 결과는 16 parseInt('0x10',17) // 16진수로 인식, 문자 x 16진수에 사용되는 문자 범위를 벗어나면 변환 결과는 0
parseInt(true) //NaN 주의 Number 함수에서 부울 유형의 사용, Number(true) //1


특별한 주의가 필요합니다
1/0 // Infinity
Infinity.toString() // 'Infinity '
여기 트릭이 있습니다.



코드 복사


코드는 다음과 같습니다.
parseInt(1/0,18) // NaN parseInt(1/0,19) // 18 문자 i가 16진수에 사용되는 문자 세트에 있기 때문에 문자 n과 다음 문자는 삭제됩니다. parseInt(1/0,19)는 실제로는parseInt('i', 19)입니다.
또한



코드 복사


코드는 다음과 같습니다.

parseInt(NaN, 36) // 30191 n이라는 문자가 있기 때문에 는 16진수 체계에서 10진수 23에 해당하고, a는 10진수 10에 해당하므로 실제로는 23*36*36 10*36 23 = 30191 parseInt(1/0,36) // 1461559270678이 됩니다. parseInt('Infinity',36) parseFloat에는 16진수 매개변수가 없으며 10진수만 처리할 수 있습니다.
parseFloat.length //1
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.