Javascript에서 문자열 대 숫자 비교가 작동하는 이유
>= 및 <=와 같은 Javascript의 비교 연산자는 피연산자를 다른 유형으로 변경합니다. 여기에는 주어진 코드 조각에서 볼 수 있듯이 문자열과 정수의 비교가 포함됩니다.
Javascript 사양은 §11.8.5에서 비교 연산자의 동작을 정의합니다. 두 피연산자가 모두 문자열이면 문자열 비교를 수행함을 나타냅니다. 피연산자 중 하나만 문자열인 경우 숫자 비교 전에 숫자로 강제 변환됩니다.
문자열과 숫자 비교의 차이로 인해 예상치 못한 결과가 발생할 수 있습니다. 예를 들어, "90" > 문자열은 사전순으로 비교되므로 "100"은 참입니다. 그러나 "90" < 피연산자 하나가 숫자로 강제 변환되므로 100은 참입니다.
Javascript에서는 암시적 강제 변환을 허용하지만 일부는 비교하기 전에 명시적으로 문자열을 숫자로 변환하는 것을 선호합니다. 이는 parInt(), parseFloat(), 단항 더하기 연산자( ), Number() 또는 0이 있는 비트 OR(str|0)을 사용하여 달성할 수 있습니다.
각 변환 방법에는 고유한 특징이 있습니다. parseInt()는 숫자가 아닌 첫 번째 문자 이후의 문자를 무시하고,parseFloat()는 십진수가 아닌 모든 문자를 무시하는 반면, 단항 더하기는 전체 문자열을 고려합니다. 0을 사용하는 비트별 OR은 32비트 정수로 강제 변환되고 NaN을 0으로 변환합니다.
변환 방법 선택은 특정 요구 사항에 따라 다릅니다. 추가 문자를 무시하는 것이 허용되는 경우,parseInt()또는parseFloat()를 사용할 수 있습니다. 전체 문자열을 고려해야 하는 경우 단항 더하기를 사용하는 것이 좋습니다.
일반적인 지침으로 명확성과 일관성을 위해 문자열을 숫자로 명시적으로 변환하는 것이 좋습니다.
위 내용은 JavaScript는 문자열-숫자 비교를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!