>  기사  >  웹 프론트엔드  >  사전 편찬 비교에서 JavaScript 문자열 \"11\" 및 \"3\"이 True로 비교되는 이유는 무엇입니까?

사전 편찬 비교에서 JavaScript 문자열 \"11\" 및 \"3\"이 True로 비교되는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-18 12:36:03822검색

Why Do JavaScript Strings

문자열의 사전적 비교

주어진 코드 조각에서 문자열 "11"과 "3"의 비교는 다음과 같은 이유로 호기심을 불러일으킵니다. 예상치 못한 사실 결과. 사소한 가정은 비교가 문자열의 길이를 기반으로 한다는 것일 수 있지만 이는 사실이 아닙니다. 대신 JavaScript 문자열은 사전식으로 비교됩니다.

사전식 비교는 문자열의 문자를 나타내는 유니코드 코드 포인트 시퀀스를 비교하여 작동합니다. 각 문자열의 첫 번째 문자를 비교하는 것으로 시작됩니다. 이러한 문자가 동일하면 두 번째 문자를 비교하는 식으로 진행됩니다. 코드 포인트가 다른 문자가 발견되거나 문자열 중 하나에 문자가 부족하면 비교가 중단됩니다.

"11"과 "3"의 경우 첫 번째 문자는 '1'과 '3입니다. '. '1'은 '3'보다 낮은 유니코드 코드 포인트를 가지므로 사전식 비교에 따르면 "11"은 "3"보다 작습니다. 이는 놀라운 결과를 설명합니다. 긴 문자열은 더 낮은 코드 포인트의 문자를 포함하기 때문에 더 짧은 문자열보다 작은 것으로 간주됩니다.

예:

'11' < '3' // true
'31' < '3' // false
'31' < '32' // true
'31' < '30' // false
'abc' < 'aaa' // false
'abc' < 'abd' // true

문자열을 명시적으로 다음 문자열로 변환하려면 숫자인 경우 단항 더하기( ) 연산자를 사용하세요.

 +'11' < '3' // false

위 내용은 사전 편찬 비교에서 JavaScript 문자열 \"11\" 및 \"3\"이 True로 비교되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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