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 строки сравниваются лексикографически: посимвольно слева направо по числовым кодам символов (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Полезное
Ваше упражнение проверяется по этим тестам
// @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
