>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 '2' > '10'이 True로 평가되는 이유는 무엇입니까?

JavaScript에서 '2' > '10'이 True로 평가되는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-28 22:57:10330검색

Why Does "10"은 JavaScript에서 True로 평가됩니까? " /> "10" JavaScript에서 True로 평가됩니까? " />

Javascript 문자열과 정수 비교 미스터리 해결

HTML에 저장된 매개변수를 JavaScript에서 정수로 비교하는 경우를 자주 접하게 됩니다. 그런데 특이한 버그가 발생합니다. 여기서 이러한 매개변수는 문자열로 해석되어 잘못된 정수 비교 결과를 초래하는 것 같습니다.

이를 설명하려면 이해하기 어려운 문제는 다음 예를 고려하세요.

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

예기치 않게 이 문은 true로 평가됩니다. 이 동작은 문자열 비교를 수행할 때 피연산자가 문자열로 강제 변환되기 때문일 수 있습니다. 결과적으로 어휘 값이 비교됩니다. 이 경우 "2"는 어휘적으로 "10"보다 크므로 잘못된 결과가 발생합니다. 결과.

이 문제를 해결하고 정확한 정수 비교를 보장하려면 문자열을 정수로 명시적으로 구문 분석하는 것이 중요합니다. 이는 다음과 같이parseInt 함수를 사용하여 수행할 수 있습니다.

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

문자열을 변환하여 수행할 수 있습니다. 해당 수치에 대해 정수 비교 연산이 실제 수치 값에 대해 수행됨을 보장합니다.

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

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