Почему одна строка больше другой при сравнении строк в JavaScript? - PullRequest
42 голосов
/ 17 августа 2011

Я вижу этот код из книги:

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

, но здесь не упоминается, почему «один» больше, чем «четыре».Я пытался c = "a", и он меньше, чем а и б.Я хочу знать, как JavaScript сравнивает эти строки.

Ответы [ 3 ]

39 голосов
/ 17 августа 2011

Потому что, как и во многих языках программирования, строки сравниваются лексикографически .

Вы можете думать об этом как о более изумительной версии алфавитного порядка , разница в том, чтоэтот алфавитный порядок охватывает только 26 символов a - z.


Этот ответ является ответом на вопрос , но логикаточно так же.Еще один хороший пример: String Сравните «Logic» .

11 голосов
/ 17 августа 2011

«один» начинается с «o», «четыре» начинается с «f», «o» в алфавите позже, чем «f», поэтому «один» больше, чем «четыре».См. на этой странице , где приведены некоторые примеры сравнений строк JavaScript (с пояснениями!).

3 голосов
/ 17 августа 2011

Javascript использует лексикографический порядок для оператора > . 'f' продолжается 'o', поэтому сравнение "один"> "четыре" возвращает true

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...