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

Строки часто сравнивают, когда проверяют логин, пароль, ответ пользователя или выбранное значение.

let answer = 'yes';
let userAnswer = 'yes';

console.log(answer === userAnswer);

Результат:

true

Обе строки одинаковые, поэтому сравнение вернуло true.

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

Для сравнения строк на равенство обычно используют оператор строгого равенства ===.

let city = 'Москва';

console.log(city === 'Москва');
console.log(city === 'Сочи');

Результат:

true
false

=== проверяет, что строки полностью совпадают.

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

Если нужно проверить, что строки разные, используют оператор строгого неравенства !==.

let role = 'admin';

console.log(role !== 'user');
console.log(role !== 'admin');

Результат:

true
false

В первом случае строки разные, во втором - одинаковые.

Регистр имеет значение

При сравнении строк JavaScript учитывает регистр букв.

console.log('JavaScript' === 'javascript');

Результат:

false

Для JavaScript это разные строки, потому что ‘J’ и ‘j’ - разные символы.

Если нужно сравнить строки без учета регистра, можно сначала привести их к одному регистру.

let correctAnswer = 'javascript';
let userAnswer = 'JavaScript';

console.log(correctAnswer.toLowerCase() === userAnswer.toLowerCase());

Результат:

true

Пробелы тоже считаются

Пробелы в строке тоже участвуют в сравнении.

let login = 'admin';
let userLogin = ' admin ';

console.log(login === userLogin);

Результат:

false

Строки выглядят похоже, но во второй строке есть пробелы по краям.

Перед сравнением пользовательский ввод часто очищают с помощью trim().

let login = 'admin';
let userLogin = ' admin ';

console.log(login === userLogin.trim());

Результат:

true

Сравнение через больше и меньше

Строки можно сравнивать операторами >, <, >= и <=.

console.log('apple' < 'banana');
console.log('cat' > 'car');

Результат:

true
true

JavaScript сравнивает строки посимвольно слева направо.

В примере ‘cat’ и ‘car’ первые две буквы одинаковые. Потом сравниваются ‘t’ и ‘r’. Буква ‘t’ идет дальше, поэтому ‘cat’ больше.

Для простых проверок такого сравнения достаточно. Но если нужно сортировать слова по правилам конкретного языка, лучше использовать специальные методы сортировки.

Итого

Для обычного сравнения строк чаще всего используют === и !==.

  • === проверяет, что строки одинаковые.
  • !== проверяет, что строки разные.
  • Регистр букв влияет на результат сравнения.
  • Пробелы тоже считаются частью строки.
  • Операторы > и < сравнивают строки посимвольно.