Bài 13: Symbol trong ES6

Trong bài này chúng ta tìm hiểu về Symbol và ứng dụng của nó trong việc tạo các key của đối tượng Map hoặc các ký tự unique.

Trong ES6 xuất hiện thêm một kiểu dữ liệu Symbol, đây là kiểu dữ liệu dạng primitive type, nó sẽ tạo ra các ký tự duy nhất (unique) và không trả về một chuỗi mà nó chỉ là một dạng được gọi như một function, vì vậy bạn sẽ không thể thấy được ký tự nó generate là gì.

1. Symbol trong ES6

Để khởi tạo một Symbol thì ta dùng cú pháp sau:

let symbol1 = Symbol();

Hàm khởi tạo Symbol có một tham số truyền vào và đây có thể coi là một secret key.

let symbol2 = Symbol('symbol2');

Nếu bạn tạo hai symbols và so sánh chúng với nhau thì sẽ thấy chúng KHÔNG BAO GIỜ bằng nhau cả.

console.log(symbol1 === symbol2); // false

Để kiểm tra một biến là một symbol thì bạn sử dụng hàm typeof.

console.log(typeof symbol1); // symbol

2. Sử dụng Symbol như một Key trong Object

Nếu bạn tạo ra nhiều Symbol thì các symbols đó sẽ không bao giờ giống nhau, vì vậy chúng ta có thể tận dụng đối tượng này để tạo các key trong Object hoặc Map.

Ví dụ: Với Object

const MY_KEY = Symbol();
let obj = {
    [MY_KEY]: 123
};
console.log(obj[MY_KEY]);

Ví dụ: Với Map

const MY_KEY = Symbol();

let map = new Map();

map.set(MY_KEY, 'freetuts.net');

console.log([...map]);

3. Lời kết

Symbol được vận dụng rất nhiều trong các bài toán thực tế điển hình là sử dụng trong các Class, trong các chương trình có sử dụng Object. Tuy nhiên trong bài này mình chỉ giới thiệu sơ lược về cách sử dụng chứ không thể trình bày hết được, vì vậy ở các bài tiếp theo nếu có sử dụng Symbol thì mình sẽ giải thích kỹ hơn.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.