JS метод String.charCodeAt()


Загальний опис

Метод String.prototype.charCodeAt() використовується для отримання числового значення Unicode символу, що стоїть на певному індексі у рядку. Це важливий інструмент при роботі з рядками, адже Unicode є стандартом кодування, що дозволяє представляти та маніпулювати текстом з будь-якої мови систематизовано та однозначно в комп’ютерних системах. Таким чином, charCodeAt() є ключем до розуміння внутрішнього представлення символів рядка, і може бути корисним при розробці функцій шифрування, при перетворенні символів у їхні числові коди або при валідації вводу тексту.

Для використання charCodeAt(), спочатку потрібно мати рядок. Виклик методу відбувається через змінну рядка з передачею індексу, для якого ми хочемо отримати код Unicode. Якщо індекс виходить за межі рядка, метод повертає NaN (що означає "не число").

Приклад простого використання:

let phrase = "Привіт!";
let code = phrase.charCodeAt(0);
console.log(code); // Виведе 1055, код Unicode для символу 'П'

У цьому прикладі, метод повертає Unicode код для символу на позиції 0 у рядку "Привіт!".

charCodeAt() також можна використовувати в циклі, щоб перебрати всі символи рядка та отримати їхні Unicode коди:

for (let i = 0; i < phrase.length; i++) {
  console.log(phrase.charAt(i) + " має Unicode код " + phrase.charCodeAt(i));
}

Цей код виведе Unicode код кожного символу у рядку phrase.

Важливо зазначити, що charCodeAt() повертає код для одиниці коду UTF-16, що використовується для представлення символу. Якщо символ може бути представлений з використанням двох одиниць коду (як це буває з деякими емодзі або історичними мовами), charCodeAt() поверне код тільки першої одиниці коду. Для отримання повної картини в таких випадках може знадобитися використання методу codePointAt(), який надає повний Unicode код.

На практиці, особливо цінною є можливість charCodeAt() працювати з різними системами кодування та виявляти вхідні дані, що не відповідають очікуваним кодовим діапазонам, що може бути корисним при фільтрації тексту або реалізації функціоналу введення даних.

автор: Bond

Порада

Особливо звертайте увагу на те, що індексування в JavaScript починається з нуля. Коли використовуєте charCodeAt(), перший символ рядка має індекс 0. Це означає, що, наприклад, щоб отримати код символу першої літери у рядку, вам потрібно викликати str.charCodeAt(0).

автор: Bond
Порада

Використовуйте charCodeAt() для створення функцій хешування або для перетворення рядків в масиви байтів. Отримані значення можуть бути корисними для створення хеш-кодів або для серіалізації текстових даних у більш компактний або безпечний для передачі через мережу формат.

автор: Bond
Порада

Перевіряйте можливість виникнення NaN у результаті. Метод charCodeAt() поверне NaN, якщо індекс, що передається як аргумент, виходить за межі довжини рядка. Використовуючи цей метод, завжди корисно перевіряти, що ви отримали дійсне числове значення, особливо якщо індекс було отримано динамічно під час виконання програми.

автор: Bond

Синтаксис

charCodeAt(index)

Параметри

index

Індекс на основі нуля символу, код якого потрібно отримати. Цей індекс конвертується в ціле число, а значення undefined конвертується в 0.

автор: Bond

Повернення

integer

Повертає ціле число від 0 до 65535, яке представляє значення кодової одиниці UTF-16 символу на зазначеному індексі. Якщо індекс виходить за межі допустимого діапазону, тобто менший нуля або більший або рівний довжині рядка (str.length), то метод charCodeAt() повертає NaN (Not-a-Number - "не число").

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 4 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі використовується метод charCodeAt() для отримання коду символу у рядку. Метод charCodeAt() повертає число, яке представляє UTF-16 код символу на вказаній позиції. Це може бути корисно для визначення кодів символів під час роботи з текстом на низькому рівні.

let text = "Привіт!";
let index = 4;
let charCode = text.charCodeAt(index); // Використовуємо метод charCodeAt() для отримання коду символу
console.log(charCode); // Виводимо код символу 'в', який дорівнює 1074
автор: Bond

У цьому прикладі charCodeAt() застосовується для перетворення рядка в масив його UTF-16 кодів. Цей метод можна використовувати для розшифровки або шифрування тексту, або для перевірки, чи входить символ до певного діапазону кодів.

let text = "Hello, World!";
let charCodes = [];

for (let i = 0; i < text.length; i++) {
  charCodes.push(text.charCodeAt(i)); // Додаємо код кожного символу до масиву
}

console.log(charCodes);
// Виводимо масив кодів символів, наприклад [72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33]
автор: Bond

Цей приклад коду дозволяє користувачам динамічно взаємодіяти з веб-сторінкою: вони можуть ввести символ в текстове поле, і після натискання кнопки на сторінці відображатиметься його Unicode код.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід