Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс JavaScript
/

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

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

Операции сравнения работают не только с числами, но и со строками. В JavaScript строки сравниваются лексикографически: посимвольно слева направо по числовым кодам символов (Unicode).

console.log('apple' < 'banana'); // => true
console.log('cat' > 'dog');      // => false
console.log('abc' === 'abc');    // => true
console.log('hello' !== 'world'); // => true

Здесь 'apple' < 'banana', потому что код символа a (97) меньше кода b (98), и именно первый различающийся символ решает исход сравнения. Узнать код символа можно методом charCodeAt():

console.log('a'.charCodeAt(0)); // => 97
console.log('b'.charCodeAt(0)); // => 98

Сравнение чувствительно к регистру: код 'Z' (90) меньше кода 'a' (97). Несколько примеров, где первые буквы в разном регистре:

console.log('Zebra' < 'apple');  // => true  — 'Z'(90) < 'a'(97)
console.log('apple' < 'Banana'); // => false — 'a'(97) > 'B'(66)
console.log('Apple' < 'apple');  // => true  — 'A'(65) < 'a'(97)

Напишем функцию, которая проверяет, начинается ли слово с заданной буквы. Для этого возьмём первый символ строки и сравним его с нужной буквой:

const startsWithLetter = (word, letter) => word[0] === letter;

console.log(startsWithLetter('apple', 'a'));  // => true
console.log(startsWithLetter('banana', 'a')); // => false

Операции сравнения — такие же выражения, как и арифметические. В них можно подставлять готовые значения и другие выражения, например word[0] выше. Можно использовать и свойство .length:

console.log('apple'.length > 3); // => true, потому что длина равна 5
console.log('hi'.length > 3);    // => false, потому что длина равна 2

Сначала вычисляется 'apple'.length (получается число 5), а потом это число сравнивается с 3. То есть сначала считаются операнды выражения, а затем выполняется сравнение.

Полезные предикаты

У строк в JavaScript есть встроенные методы-предикаты. Они возвращают true или false и помогают проверять разные свойства строки:

console.log('hello'.startsWith('he')); // => true — строка начинается с 'he'
console.log('hello'.endsWith('lo'));   // => true — строка заканчивается на 'lo'
console.log('hello'.includes('ell'));  // => true — строка содержит 'ell'

Такие методы позволяют проверять строки на нужные условия прямо в коде, без написания дополнительных функций.

Задание

При регистрации на сайте программа проверяет, что пароль достаточно длинный — больше 5 символов. Напишите функцию isLongWord(), которая возвращает true, если длина переданного слова больше 5 символов, и false в противном случае.

Пример работы:

isLongWord('apple');  // => false
isLongWord('banana'); // => true
Коммерческий опыт и Трудоустройство

Полезное

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

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
/
Программирование
/
Курс JavaScript
/

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

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

Операции сравнения работают не только с числами, но и со строками. В JavaScript строки сравниваются лексикографически: посимвольно слева направо по числовым кодам символов (Unicode).

console.log('apple' < 'banana'); // => true
console.log('cat' > 'dog');      // => false
console.log('abc' === 'abc');    // => true
console.log('hello' !== 'world'); // => true

Здесь 'apple' < 'banana', потому что код символа a (97) меньше кода b (98), и именно первый различающийся символ решает исход сравнения. Узнать код символа можно методом charCodeAt():

console.log('a'.charCodeAt(0)); // => 97
console.log('b'.charCodeAt(0)); // => 98

Сравнение чувствительно к регистру: код 'Z' (90) меньше кода 'a' (97). Несколько примеров, где первые буквы в разном регистре:

console.log('Zebra' < 'apple');  // => true  — 'Z'(90) < 'a'(97)
console.log('apple' < 'Banana'); // => false — 'a'(97) > 'B'(66)
console.log('Apple' < 'apple');  // => true  — 'A'(65) < 'a'(97)

Напишем функцию, которая проверяет, начинается ли слово с заданной буквы. Для этого возьмём первый символ строки и сравним его с нужной буквой:

const startsWithLetter = (word, letter) => word[0] === letter;

console.log(startsWithLetter('apple', 'a'));  // => true
console.log(startsWithLetter('banana', 'a')); // => false

Операции сравнения — такие же выражения, как и арифметические. В них можно подставлять готовые значения и другие выражения, например word[0] выше. Можно использовать и свойство .length:

console.log('apple'.length > 3); // => true, потому что длина равна 5
console.log('hi'.length > 3);    // => false, потому что длина равна 2

Сначала вычисляется 'apple'.length (получается число 5), а потом это число сравнивается с 3. То есть сначала считаются операнды выражения, а затем выполняется сравнение.

Полезные предикаты

У строк в JavaScript есть встроенные методы-предикаты. Они возвращают true или false и помогают проверять разные свойства строки:

console.log('hello'.startsWith('he')); // => true — строка начинается с 'he'
console.log('hello'.endsWith('lo'));   // => true — строка заканчивается на 'lo'
console.log('hello'.includes('ell'));  // => true — строка содержит 'ell'

Такие методы позволяют проверять строки на нужные условия прямо в коде, без написания дополнительных функций.

Задание

При регистрации на сайте программа проверяет, что пароль достаточно длинный — больше 5 символов. Напишите функцию isLongWord(), которая возвращает true, если длина переданного слова больше 5 символов, и false в противном случае.

Пример работы:

isLongWord('apple');  // => false
isLongWord('banana'); // => true
Коммерческий опыт и Трудоустройство

Полезное

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

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

// @ts-check

import { expect, test } from 'vitest';
import f from './index.js';

test('bool strings', () => {
  expect(f('apple')).toBe(false);
  expect(f('banana')).toBe(true);
  expect(f('pineapple')).toBe(true);
});
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →