> 웹 프론트엔드 > JS 튜토리얼 > JavaScript에서 '2' > '10'이 True를 반환하는 이유는 무엇입니까?

JavaScript에서 '2' > '10'이 True를 반환하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-13 10:24:02
원래의
194명이 탐색했습니다.

Why Does "10"은 JavaScript에서 True를 반환합니까? " /> "10" JavaScript에서 True를 반환합니까? " />

Javascript: 예상치 못한 문자열-정수 비교 난제

웹 개발 영역에서는 문자열이나 정수로 저장된 매개변수를 비교해야 하는 경우가 많습니다. 그러나 , 특이한 버그가 나타나 개발자들이 머리를 긁적입니다. 마치 매개변수가 대신 문자열로 처리되는 것처럼 정수 비교가 비정상적으로 작동하는 것 같습니다.

다음 당황스러운 예를 생각해 보세요. 2" > "10")이 실행되면 예기치 않게 'true'가 반환됩니다. 이는 2가 수치적으로 10보다 작다는 점을 고려하면 모든 논리적 기대를 거스르는 것입니다.

그렇다면 이 이상한 동작의 근원은 무엇일까요? Javascript의 비교 연산자는 기본적으로 어휘 비교를 수행하는 것으로 나타났습니다. 이는 문자열과 정수를 비교할 때 문자열이 유니코드 코드 포인트로 처리되고 이 경우 문자열 "2"의 선행 '2'를 비교한다는 것을 의미합니다. "10"의 선행 '1'보다 어휘적으로 크므로 결과가 나옵니다.

이 문제를 해결하려면 문자열 매개변수를 정수로 명시적으로 구문 분석하는 것이 중요합니다. 이는 다음 코드에 설명된 대로parseInt 함수를 사용하여 달성할 수 있습니다.

문자열을 정수로 구문 분석함으로써 어휘의 함정에 빠지지 않고 수치 비교가 올바르게 수행되도록 보장합니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿