"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que “11” é comparado como menor que “3” em JavaScript?

Por que “11” é comparado como menor que “3” em JavaScript?

Publicado em 2024-11-04
Navegar:178

Why Does \

Anomalias de comparação de strings: por que "11" é menor que "3" em JavaScript

O comportamento de comparação de strings do JavaScript pode ser contra-intuitivo às vezes. Um exemplo é a desigualdade '11'

Em JavaScript, strings são comparadas lexicograficamente caractere por caractere, da esquerda para a direita. Quando os caracteres são diferentes, a comparação é baseada nos pontos de código Unicode. O código ASCII para '1' é 49, enquanto o de '3' é 51. Portanto, o primeiro caractere de '11' (com um ponto de código 49) é menor que o primeiro caractere de '3' (com um código ponto de 51), resultando na desigualdade '11'

Aqui estão alguns exemplos adicionais para ilustrar esse comportamento:

  • '31'
  • '31'
  • '31'

É importante observe que as mesmas regras de comparação se aplicam às cartas. Se 'b' não for menor que 'a', 'abc' não pode ser menor que 'aaa'. No entanto, 'c' é menor que 'd', então 'abc' é menor que 'abd'.

Para evitar tais anomalias ao comparar strings como números, é recomendado convertê-las explicitamente usando o operador ' ' :

 '11' 
Declaração de lançamento Este artigo foi reimpresso em: 1729224258 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3