web-dev-qa-db-fra.com

Pourquoi une chaîne est-elle supérieure à l'autre lors de la comparaison de chaînes en JavaScript?

Je vois ce code dans un livre:

var a = "one";
var b = "four";
a>b; // will return true

mais il ne mentionne pas pourquoi "un" est plus grand que "quatre". J'ai essayé c = "a" et il est plus petit que a et b. Je veux savoir comment JavaScript compare ces chaînes.

42
patriot7

Parce que, comme dans de nombreux langages de programmation, les chaînes sont comparées lexicographiquement .

Vous pouvez considérer cela comme une version plus sophistiquée de ordre alphabétique , la différence étant que l'ordre alphabétique ne couvre que les 26 caractères a à z.


Cette réponse est en réponse à une question Java , mais la logique est exactement la même. Un autre bon: String Compare "Logic" .

41
Matt Ball

"un" commence par "o", "quatre" commence par "f", "o" est plus tard dans l'alphabet que "f", donc "un" est supérieur à "quatre". Voir cette page pour de beaux exemples de comparaisons de chaînes JavaScript (avec explications!).

11
Paul

Javascript utilise l'ordre lexicographique pour l'opérateur >. 'f' continue 'o' donc la comparaison "un"> "quatre" renvoie vrai

3
martin