Операторы сравнения в JavaScript. Как сравнить строки или всё познаётся в сравнении...

В этой статье мы поговорим об операторах сравнения в языке программирования JavaScript и отдельное внимание уделим тому, как сравнивать строки. Также вы узнаете, почему строчная "a" не равна заглавной "A".

Большинство операторов сравнения, используемых в JS, нам хорошо известны ещё из математики. Впрочем, операторы знакомы всем, кто имеет даже скромный опыт программирования на любых языках: — операторы «больше» и «меньше»: a > b, a < b; — операторы «больше либо равно», «меньше либо равно»: a >= b, a <= b; — оператор «равно»: a == b. Не забудьте, что в программировании оператор «равно» — это двойной знак равенства. Одинарное равно имеет оператор присваивания: a = b; — оператор «не равно». В школьной алгебре это ≠. В JavaScript, как и других языках, при написании оператора «равно» пишут равно и восклицательный знак: a != b.

Логический тип результата сравнения

Как и другие операторы, операторы сравнения тоже возвращают значение. В нашем случае у этого значения логический тип, а именно:

• true – значит «истина». • false – значит «ложь».

К примеру:

alert( 2 > 1 );  // true (верно)
alert( 2 == 1 ); // false (неверно)
alert( 2 != 1 ); // true (верно)

Кстати, у нас есть возможность присвоить результат сравнения какой-нибудь переменной:

let result = 5 > 4; // результат сравнения мы присвоим переменной result
alert( result ); // true

Сравнение строк в JavaScript

Иногда нужно определить, является ли одна строка больше, чем другая. В языке JavaScript применяется «алфавитный» либо «лексикографический» порядок. Иначе говоря, сравнение строк осуществляется посимвольно.

Простой пример сравнения строк:

alert( 'Я' > 'А' ); // true
alert( 'Ком' > 'Код' ); // true
alert( 'Сонник' > 'Сон' ); // true

А вот алгоритм сравнения 2-х строк, который является весьма простым: 1. Поначалу происходит сравнение первых символов строк. 2. В случае, если 1-й символ первой строки больше или меньше 1-го символа второй строки, 1-я строка будет больше (или, соответственно, меньше), чем вторая строка. 3. Если же 1-е символы будут равны, происходит сравнение вторых символов строк. 4. Согласно алгоритму, сравнение продолжается до тех пор, пока одна из строк не закончится. 5. В случае, когда обе строки заканчиваются одновременно, эти строки равны. Или же, большей будет считаться та строка, которая длиннее.

Рассмотрим наши примеры. Очевидно, что сравнение 'Я' > 'А' закончится на 1-м шаге. Что касается строк "Ком" и "Код", то их сравнение будет осуществляться посимвольно следующим образом: 1. "К" равна "К". 2. "о" равна "о". 3. "м" является больше чем "д". А значит, сравнение строк заканчивается. Результат — первая строка больше, чем вторая.

Почему так получается? Потому что здесь используется на классический алфавит, а кодировка Unicode, в соответствии с которой каждый символ имеет свое значение на «машинном» языке. Таблицу символов русского языка можно посмотреть, например, здесь.

Кроме того, следует учитывать, что в JavaScript регистр символов тоже имеет значение. Если вы перейдёте по ссылке выше, то увидите, что строчная "a" не равна заглавной "A". Как видно из таблицы, строчная "a" будет больше.

Пожалуй, это основное из того, что нужно знать о сравнении строк. Собственно говоря, это простейшие вещи, которые должен знать каждый. Если же вас интересуют действительно продвинутые навыки программирования на JavaScript, добро пожаловать на наш курс!