логотип PurpleSchool
Иконка входа
Вход
логотип PurpleSchool

Как работает метод charCodeAt() - JavaScript

Автор

Виталий Котов

Метод charCodeAt() возвращает целое число от 0 до 65535, представляющее кодовую единицу UTF-16 с заданным индексом.

// объявление строки
const greeting = "Good morning!";

// Единица кода UTF-16 символа с индексом 5
let result = greeting.charCodeAt(5);

console.log(result);

// Вывод в консоль: 109

Синтаксис charCodeAt()

Синтаксис метода charCodeAt() следующий:

str.charCodeAt(index);

Где str - это строка.

Параметры charCodeAt()

Метод charCodeAt() принимает:

  • index — целое число от 0 до (str.length — 1).

Примечание: str.length возвращает длину заданной строки.

Возвращаемое значение charCodeAt()

Возвращает число, представляющее значение кодовой единицы UTF-16 символа по заданному индексу.

Примечания:

  • Метод charCodeAt() всегда возвращает значение меньшее 65 536.
  • Если точка Unicode не может быть представлена в одной единице кода UTF-16 (значения больше 0xFFFF), то возвращается первая часть пары для этой точки кода.

Примеры

Пример 1: Использование метода charCodeAt()

const greeting = "Good morning!";

// Единица кода UTF-16 символа с индексом 5
let result1 = greeting.charCodeAt(5);

console.log(result1);

// Единица кода UTF-16 символа с индексом 5.2
let result2 = greeting.charCodeAt(5.2);

console.log(result2);

// Единица кода UTF-16 символа с индексом 5.9
let result3 = greeting.charCodeAt(5.9);

console.log(result3);

Вывод в консоль:

109
109
109

В приведенном выше примере мы используем метод charCodeAt() для доступа к кодовой единице UTF-16 символа с индексом 5.

Поскольку символ, присутствующий в индексе 5, - это "m", метод возвращает кодовую единицу UTF-16 символа "m".

Аналогично, для нецелых индексов 5.2 и 5.9 числа преобразуются в ближайшее целое значение, т.е. 5, поэтому метод снова возвращает кодовую единицу UTF-16 символа "m", т.е. 109.

Пример 2: Метод charCodeAt() с индексом вне диапазона

const greeting = "Good morning!";

// передача индекса, превышающего длину строки
let result3 = greeting.charCodeAt(18);

console.log(result3);

// передача неотрицательного значения индекса
let result4 = greeting.charCodeAt(-9);

console.log(result4);

Вывод в консоль:

NaN
NaN

В приведенном выше примере мы создали строку "Good morning!".

Здесь оба кода greeting.charCodeAt(18) и greeting.charCodeAt(-9) возвращают NaN, потому что индексы 18 и -9 отсутствуют в данной строке.

Пример 3: charCodeAt() с параметром по умолчанию

const greeting = "Good morning!";

// без передачи параметра в charCodeAt()
let result1 = greeting.charCodeAt();

console.log(result1);

// передача 0 в качестве параметра
let result2 = greeting.charCodeAt(0);

console.log(result2);

Вывод в консоль:

71
71

В приведенном выше примере, поскольку мы не передали ни одного параметра в charCodeAt(), значение по умолчанию будет равно 0.

Поэтому метод возвращает единицу кода UTF-16 символа с индексом 0, т.е. 71.

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile