JavaScript - Unicode: Hướng dẫn tổng quan cho người mới bắt đầu

Xin chào các bạn đang học lập trình! Hôm nay, chúng ta sẽ bắt đầu một chuyến hành trình thú vị vào thế giới Unicode trong JavaScript. Đừng lo lắng nếu bạn mới bắt đầu học lập trình - tôi sẽ là người hướng dẫn thân thiện của bạn, và chúng ta sẽ cùng nhau học từng bước. Vậy, hãy lấy một cốc cà phê (hoặc trà, nếu đó là sở thích của bạn), và cùng nhau bắt đầu!

JavaScript - Unicode

Unicode là gì?

Hãy tưởng tượng bạn đang cố gắng viết một lá thư cho bạn bút của bạn ở Trung Quốc, nhưng bàn phím của bạn chỉ có các chữ cái tiếng Anh. Thật khó chịu phải không? Đây là lúc Unicode đến để giải cứu!

Unicode giống như một cuốn từ điển kỳ diệu mà mỗi ký tự trong mỗi hệ thống ngôn ngữ trên thế giới đều được gán một số duy nhất (gọi là "điểm mã hóa"). Nó không chỉ bao gồm chữ cái và số - nó còn bao gồm các ký hiệu, biểu tượng cảm xúc và thậm chí là các chữ viết cổ đại!

Ví dụ, chữ cái 'A' có điểm mã hóa Unicode U+0041, trong khi ký tự Trung Quốc '中' (nghĩa là "giữa") có điểm mã hóa U+4E2D.

Tư duy đằng sau Unicode

Hãy nghĩ về Unicode như một ngôn ngữ phổ quát cho máy tính. Trước Unicode, các khu vực khác nhau trên thế giới sử dụng các hệ thống mã hóa khác nhau, dẫn đến rất nhiều sự nhầm lẫn và vấn đề tương thích. Đó giống như có một tháp ngôn ngữ trong thế giới kỹ thuật số!

Unicode đã giải quyết vấn đề này bằng cách tạo ra một hệ thống tiêu chuẩn hóa có thể đại diện cho các ký tự từ tất cả các hệ thống viết. Nó giống như cấp cho mỗi ký tự trong mỗi ngôn ngữ một thẻ ID duy nhất mà các máy tính everywhere có thể nhận diện.

Unicode trong JavaScript

Bây giờ, hãy xem JavaScript xử lý Unicode như thế nào. JavaScript sử dụng mã hóa UTF-16, có nghĩa là nó có thể trực tiếp đại diện cho 65.536 ký tự Unicode đầu tiên (còn được gọi là Mặt phẳng ngôn ngữ cơ bản hoặc BMP).

Dưới đây là bảng các phương thức JavaScript cung cấp để làm việc với Unicode:

Phương thức Mô tả
String.fromCharCode() Tạo một chuỗi từ các giá trị Unicode
String.fromCodePoint() Tạo một chuỗi từ các điểm mã hóa
charCodeAt() Trả về giá trị Unicode của một ký tự
codePointAt() Trả về điểm mã hóa của một ký tự

Hãy cùng xem một số ví dụ để thấy chúng trong hành động!

Ví dụ

1. Tạo một chuỗi từ các giá trị Unicode

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

Trong ví dụ này, chúng ta sử dụng String.fromCharCode() để tạo một biểu tượng tim. Số 9829 là giá trị Unicode cho bộ bài đen tim (♥). Đó như thể nói với JavaScript, "Hey, hãy cho tôi ký tự có số thẻ ID là 9829!"

2. Lấy giá trị Unicode của một ký tự

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

Ở đây, chúng ta sử dụng charCodeAt() để lấy giá trị Unicode của ký tự ở vị trí 7 trong chuỗi của chúng ta (đó là '世'). Đó như thể hỏi, "Thẻ ID của ký tự thứ 8 trong chuỗi này là gì?"

3. Làm việc với các ký tự ngoài BMP

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

Đối với các ký tự ngoài Mặt phẳng ngôn ngữ cơ bản (như nhiều biểu tượng cảm xúc), chúng ta cần sử dụng codePointAt()String.fromCodePoint(). Trong ví dụ này, chúng ta đang làm việc với biểu tượng rocket. Đó như thể deal với một ký tự đặc biệt có số thẻ ID rất cao!

4. Đếm ký tự chính xác

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

Đây là một điều khó hiểu! JavaScript coi các ký tự ngoài BMP là hai ký tự. Vì vậy, biểu tượng彩虹 (?) được tính là hai ký tự. Nếu chúng ta muốn đếm nó là một, chúng ta có thể sử dụng toán tử phân tán (...) để chia chuỗi thành một mảng các ký tự.

5. Sequences escape Unicode

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

Sequences escape Unicode cho phép chúng ta đại diện các ký tự Unicode trong mã của chúng ta. Đó như thể viết số thẻ ID thay vì ký tự thực tế. Cú pháp \u{...} được sử dụng cho tất cả các điểm mã hóa Unicode.

Kết luận

Và đây là tất cả, các bạn! Chúng ta đã có một chuyến du lịch nhanh chóng qua Unicode trong JavaScript. Từ việc hiểu Unicode là gì, đến việc xem JavaScript xử lý nó như thế nào, đến việc chơi với một số ví dụ thú vị - tôi hy vọng bạn đãEnjoyed cuộc hành trình này như tôi đã làm.

Nhớ rằng, Unicode là điều cho phép chúng ta viết phần mềm có thể được sử dụng bởi mọi người trên thế giới, bằng bất kỳ ngôn ngữ nào. Nó là một ví dụ đẹp về cách công nghệ có thể bring us together và break down barriers.

Khi bạn tiếp tục hành trình lập trình của mình, hãy tiếp tục khám phá và thử nghiệm với Unicode. Thử viết tin nhắn bằng các ngôn ngữ khác nhau, hoặc vui chơi với các biểu tượng cảm xúc trong mã của bạn. Thế giới lập trình là rộng lớn và thú vị, và Unicode là hộ chiếu của bạn để giao tiếp toàn cầu!

Chúc các bạn lập trình vui vẻ, và cho đến lần gặp lại - hãy để mã của bạn không có bug và cà phê của bạn mạnh mẽ! ?☕

Credits: Image by storyset