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()
працювати з різними системами кодування та виявляти вхідні дані, що не відповідають очікуваним кодовим діапазонам, що може бути корисним при фільтрації тексту або реалізації функціоналу введення даних.
Порада: | Особливо звертайте увагу на те, що індексування в JavaScript починається з нуля. Коли використовуєте |
Порада: | Використовуйте |
Порада: | Перевіряйте можливість виникнення |
Синтаксис
charCodeAt(index)
Параметри
- *
index
Індекс на основі нуля символу, код якого потрібно отримати. Цей індекс конвертується в ціле число, а значення
undefined
конвертується в0
.
Return
integer
Повертає ціле число від
0
до65535
, яке представляє значення кодової одиниці UTF-16 символу на зазначеному індексі. Якщо індекс виходить за межі допустимого діапазону, тобто менший нуля або більший або рівний довжині рядка (str.length
), то методcharCodeAt()
повертаєNaN
(Not-a-Number - "не число").
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
4 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
Цей приклад коду дозволяє користувачам динамічно взаємодіяти з веб-сторінкою: вони можуть ввести символ в текстове поле, і після натискання кнопки на сторінці відображатиметься його Unicode код.
У цьому прикладі використовується метод charCodeAt()
для отримання коду символу у рядку. Метод charCodeAt()
повертає число, яке представляє UTF-16 код символу на вказаній позиції. Це може бути корисно для визначення кодів символів під час роботи з текстом на низькому рівні.
let text = "Привіт!";
let index = 4;
let charCode = text.charCodeAt(index); // Використовуємо метод charCodeAt() для отримання коду символу
console.log(charCode); // Виводимо код символу 'в', який дорівнює 1074
У цьому прикладі 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]