>  기사  >  웹 프론트엔드  >  JS 문자열을 숫자로 변환하는 방법

JS 문자열을 숫자로 변환하는 방법

不言
不言원래의
2018-07-09 14:52:341811검색

이 글에서는 주로 JS 문자열을 숫자로 변환하는 방법을 소개합니다. 이제 특정 참조 값이 있으므로 이를 참조할 수 있도록 공유합니다.

문자열을 숫자로 변환합니다. 여러가지 방법이 있는데 5가지 정도 생각나네요! 하지만 앞으로는 여러분의 편의를 위해 여기에 요약해 보겠습니다.

parseInt

JsPerf.com의 벤치마크 테스트에 따르면 대부분의 브라우저는 응답합니다. ParseInt 최적입니다. 가장 빠른 방법이지만 preseInt를 사용하면 몇 가지 일반적인 함정에 직면하게 됩니다: parseInt: 베이스가 전달되지 않을 때 전달된 베이스는 기본값이 10입니다. parseInt(num, 10), 모르는 경우 num 속성의 유형입니다. 문자열을 숫자로 변환하는 데 parsInt를 사용하지 마십시오.

parseInt('043') // returns 0 部分老浏览器.
parseInt('20.mp4') // returns 20

parseFloat

16진수를 구문 분석하지 않는 경우 매우 좋은 선택입니다. 문자열의 음수 16진수는 특수한 경우이며, 이를 ParseFloat로 구문 분석하면 결과가 올바르지 않게 됩니다. 프로그램에서 NaN 상황을 방지하려면 변환된 값을 확인해야 합니다.

parseInt(-0xFF) // returns -255
parseInt("-0xFF") // returns -255
parseFloat(-0xFF) // returns -255
parseFloat("-0xFF") // returns 0
parseFloat('44.jpg') // return 44

Bitwise not

은 문자열을 정수로 변환할 수 있지만 부동 소수점 숫자는 아닙니다. 문자열 변환인 경우 0을 반환합니다. 원리는 무엇인가요? 뒤집어서) 각 비트는 A1의 보수라고도 알려져 있습니다. 사용할 수 있지만 정수를 저장하는 데에만 사용할 수 있습니다. 따라서 일반적으로 숫자가 32비트 정수 사이인지 확신할 수 없으면(ToInt32 호출 사양으로 인해) 사용하지 마세요. 비트별 NOT: 입력에 문자가 없고 정수만 있는지 확인하려면 이 옵션을 사용하세요.

~~1.23 // returns 1
~~"1.23" // returns 1
~~"23" // returns 23
~~"Hello world" // returns 0

Number

Number는 위에서 언급한 변환 방법과 동일한 문제가 있습니다. 구문 분석할 때 사용자가 제공한 숫자를 찾으려고 합니다. 참고: 023 실제로는 8진수이며, 어떻게 하든 작은따옴표나 큰따옴표가 없는 16진수에 대해서는 19를 반환합니다. Number는 JsPerf에서 가장 느린 것 중 하나이기도 합니다.

Number("023") // returns 23
Number(023) // returns 19

단항 클라우드 연산자

"1.23" * 1 // returns 1.23
"0xFF" - 0 // returns 255
"0xFF.jpg" / 1 // returns NaN
+"023" // returns 23

단항 연산자는 다른 구문 분석 방법과 다릅니다. NaN 값인 경우 반환되는 값입니다. NaN입니다. 이것은 숫자 값을 변환하는 데 제가 가장 좋아하는 방법입니다. 왜냐하면 문자가 있는 객체는 비트 수에 따라 0 또는 "추측"으로 처리되어야 한다고 생각하지 않기 때문입니다. 기본적으로 + 연산자를 사용하는 이유는 이 방법이 덜 혼란스럽기 때문입니다. -0을 활용하는 것도 좋지만, 숫자로 변환하려는 본래의 의도를 잘 표현하지 못합니다.

위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!

관련 권장사항:

js 비동기 for 루프 소개

위 내용은 JS 문자열을 숫자로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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