"10"입니까? Javascript 프로그래밍에는 문자열과 정수 비교에 특이한 특징이 있습니다...."/> "10"입니까? Javascript 프로그래밍에는 문자열과 정수 비교에 특이한 특징이 있습니다....">

>웹 프론트엔드 >JS 튜토리얼 >Javascript에서 '2' > '10'인 이유는 무엇입니까?

Javascript에서 '2' > '10'인 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-19 15:24:02584검색

Why Does 자바스크립트로 "10"? " /> 자바스크립트에서 "10"? " />

Javascript 문자열/정수 비교 진퇴양난: 왜 "2" > "10"인가요?

Javascript 프로그래밍에는 문자열과 정수 비교에 독특한 특징이 있습니다. 숫자 문자열이 정수로 처리된다고 가정할 수도 있지만 항상 그런 것은 아니며 예상치 못한 결과가 발생합니다.

다음과 같은 난해한 코드를 생각해 보세요.

console.log("2" > "10");

놀랍게도 이 코드는 왜 "2"가 "10"보다 큰가요?

근본적인 문제는 Javascript의 문자열과 정수 처리 방식에 있습니다. Javascript는 두 문자열을 비교할 때 사전순 비교를 수행합니다. 이 경우 "2"(50)의 ASCII 코드 포인트는 "10"(56)의 코드 포인트보다 작으므로 "2"는 "10"보다 "작은" 것으로 간주됩니다. 문자열 비교.

이 딜레마를 해결하고 숫자 값을 정수로 정확하게 비교하려면 문자열을 정수로 수동으로 구문 분석하는 것이 중요합니다. 이는 문자열과 밑수를 사용하는parseInt 함수를 사용하여 수행할 수 있습니다. 기수를 인수로 사용합니다.

예를 들어 문자열 "2"를 정수로 변환하고 "10"과 의미 있는 비교를 수행하려면:

alert(parseInt("2", 10) > parseInt("10", 10));

이 코드는 false로 올바르게 평가됩니다. 둘 다 정수로 처리되면 "2"는 실제로 "10"보다 작습니다.

꼼꼼한 문자열 구문 분석을 사용하면 다음과 같은 문제를 피할 수 있습니다. Javascript의 혼란스러운 문자열/정수 비교 동작의 함정을 제거하고 신뢰할 수 있는 수치 비교를 보장합니다.

위 내용은 Javascript에서 '2' > '10'인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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