Сравнение строк в 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’ больше.
Для простых проверок такого сравнения достаточно. Но если нужно сортировать слова по правилам конкретного языка, лучше использовать специальные методы сортировки.
Итого
Для обычного сравнения строк чаще всего используют === и !==.
===проверяет, что строки одинаковые.!==проверяет, что строки разные.- Регистр букв влияет на результат сравнения.
- Пробелы тоже считаются частью строки.
- Операторы
>и<сравнивают строки посимвольно.