JavaScript - Unicode: Полное руководство для начинающих

Здравствуйте, будущие кодеры! Сегодня мы отправимся в увлекательное путешествие в мир Юникода в JavaScript. Не волнуйтесь, если вы новички в программировании - я буду вашим доброжелательным гидом, и мы будем двигаться шаг за шагом. Так что возьмите кружку кофе (или чая, если это ваше дело), и lets dive in!

JavaScript - Unicode

Что такое Юникод?

Представьте, что вы пытаетесь написать письмо своему другу-письменнику в Китае, но ваша клавиатура имеет только английские буквы. Раздражает, правда? Вот где на помощь приходит Юникод!

Юникод похож на магический словарь, который assigns уникальное число (называемое "кодовая точка") каждому символу в каждой языковой системе мира. Это не только про буквы и цифры - он включает символы, emoji и даже древние надписи!

Например, литера 'A' имеет кодовую точку Юникода U+0041, а китайский символ '中' (означает "середина") имеет кодовую точку U+4E2D.

Интуиция за Юникодом

Думайте о Юникоде как о универсальном языке для компьютеров. До Юникода разные регионы мира использовали разные системы кодирования, что приводило к mass confusion и проблемам с совместимостью. Это было как Вавилонская башня в цифровом мире!

Юникод решил эту проблему, создав стандартизованную систему, которая может представлять символы из всех систем письма. Это как если бы каждый символ в каждом языке получил уникальную идентификационную карту, которую компьютеры везде могут recognize.

Юникод в JavaScript

Теперь давайте посмотрим, как JavaScript обрабатывает Юникод. JavaScript использует кодирование UTF-16, что означает, что он может напрямую represent первые 65,536 символов Юникода (также известные как Основная мультиязычная плоскость или BMP).

Вот небольшая таблица методов, которые JavaScript предоставляет для работы с Юникодом:

Метод Описание
String.fromCharCode() Создает строку из значений Юникода
String.fromCodePoint() Создает строку из кодовых точек
charCodeAt() Возвращает Юникодовое значение символа
codePointAt() Возвращает кодовую точку символа

Давайте рассмотрим несколько примеров, чтобы увидеть, как это работает!

Примеры

1. Создание строки из значений Юникода

let heart = String.fromCharCode(9829);
console.log(heart); // ♥

В этом примере мы используем String.fromCharCode() для создания символа сердца. Число 9829 - это Юникодовое значение для черного сердца (♥). Это как если бы мы сказали JavaScript, "Эй, дай мне символ, который имеет идентификационную карту с номером 9829!"

2. Получение Юникодового значения символа

let str = "Hello, 世界!";
console.log(str.charCodeAt(7)); // 19990

Здесь мы используем charCodeAt() для получения Юникодового значения символа на индексе 7 в нашей строке (что '世'). Это как если бы мы спросили, "Какое идентификационное число у 8-го символа в этой строке?"

3. Работа с символами за пределами BMP

let emoji = "?";
console.log(emoji.codePointAt(0)); // 128640
console.log(String.fromCodePoint(128640)); // ?

Для символов за пределами Основной мультиязычной плоскости (например, многих emoji), мы должны использовать codePointAt() и String.fromCodePoint(). В этом примере мы работаем с emoji ракеты. Это как если бы мы имели дело с особым символом, который имеет очень высокое идентификационное число!

4. Correctly counting characters

let text = "? Rainbow";
console.log(text.length); // 9
console.log([...text].length); // 8

Это хитрый момент! JavaScript Treats символы за пределами BMP как два символа. Так что радужный emoji (?) считается как два символа. Если мы хотим посчитать его как один, мы можем использовать оператор расширения (...) для разделения строки на массив символов.

5. Юникодные escape sequences

console.log("\u{1F600}"); // ?
console.log("\u{1F64B}\u{200D}\u{2640}\u{FE0F}"); // ?‍♀️

Юникодные escape sequences позволяют нам представлять Юникодные символы в нашем коде. Это как если бы мы писали идентификационное число вместо самого символа. Синтаксис \u{...} используется для всех Юникодовых кодовых точек.

Заключение

И вот мы и здесь, друзья! Мы совершили головокружительное путешествие по Юникоду в JavaScript. От понимания, что такое Юникод, до того, как JavaScript его обрабатывает, до игры с интересными примерами - я надеюсь, вам понравилось это путешествие так же, как и мне.

помните, что Юникод позволяет нам писать программы, которые могут использоваться людьми по всему миру, на любом языке. Это красивый пример того, как технологии могут объединять нас и разрушать барьеры.

Продолжая ваше путешествие в программировании, продолжайте исследовать и экспериментировать с Юникодом. Попробуйте писать сообщения на разных языках, или весело проводите время с emoji в вашем коде. Мир программирования безграничен и захватывающ, и Юникод - ваш паспорт к глобальной коммуникации!

Счастливого кодирования, и до свидания - пусть ваш код будет без ошибок, а кофе крепким! ?☕

Credits: Image by storyset